【问题标题】:Saving LINQ-to-SQL Transactions to Re-Run Later?保存 LINQ-to-SQL 事务以便稍后重新运行?
【发布时间】:2010-03-11 11:31:11
【问题描述】:

我编写了一个应用程序来配置我们拥有的平台。我们当前的流程是在暂存环境中进行配置更改,当它们获得批准后,在生产环境中进行相同的更改。

此过程中存在错误空间,因为用户可能会错误地在生产中做出未在暂存阶段获得批准的更改。如果用户不小心,很容易点击错误的按钮或从列表中选择错误的选项。

我一直认为,如果我们可以保存所有将暂存环境置于其当前批准状态的 LINQ-to-SQL 操作,并在生产环境中重新运行这些保存的操作,那么这种风险将会降低,而不是手动进行相同的更改。

我想我想问的是是否有任何方法可以“脚本化”我的 LINQ-to-SQL 执行的插入/更新/删除?

这是一个现实的想法吗?如果没有,有人可以提出不同的方法来解决这个问题吗?

谢谢

戴夫

【问题讨论】:

    标签: c# .net sql-server linq-to-sql


    【解决方案1】:

    您在 DataContext 上设置 Log 属性以查看呈现的 SQL。快速搜索会弹出这个有趣的页面:

    http://www.u2u.info/Blogs/Kris/Lists/Posts/Post.aspx?ID=11

    【讨论】:

      【解决方案2】:

      考虑到您的真实问题(即将配置更改从登台传播到生产),我认为更好的解决方案是开发一种获取/应用“配置快照”的机制' 而不是记录和应用产生所需配置的操作。

      您的解决方案(从数据上下文记录查询)具有以下表面上的缺点:

      • 这取决于配置的初始状态(当您开始记录操作时,如果您的生产配置与暂存配置不同,您将会遇到问题)
      • 您正在处理一系列操作(可能非常复杂),而您实际上对这些操作的结果感兴趣 - 所以最好保存最终结果

      【讨论】:

      • @AlexS:您关于“获取/应用'配置快照'”的建议对于我想要实现的目标来说是理想的。问题是生产数据库运行了一些复制实用程序,这会阻止我们用新快照覆盖它。 可以关闭复制以应用快照,但这需要 SysAdmin 的参与,这是很多开销。
      猜你喜欢
      • 2019-09-09
      • 2022-10-14
      • 1970-01-01
      • 1970-01-01
      • 2021-09-10
      • 1970-01-01
      • 1970-01-01
      • 2022-10-05
      • 1970-01-01
      相关资源
      最近更新 更多