【问题标题】:Custom TransactionScope自定义事务范围
【发布时间】:2011-03-09 06:18:24
【问题描述】:

TransactionScope 有几个限制: 1. IsolationLevel 在事务中不能改变 2.嵌套事务作用域并不是我们所说的嵌套事务

是否可以编写自定义 TransactionScope 来解决这些限制,或者它们是否集成到 System.Transactions 的核心中并且无法更改?

更新。如果不是,人们为什么要创建自定义 TransactionScopes?它可以解决什么问题?

【问题讨论】:

  • Re 2 - 你是什么意思?它们正是我对 DTC 事务的期望......还是您打算回滚内部事务但提交外部事务? (这是你做不到的)
  • 但是如果我想在不回滚根事务的情况下回滚内部事务时模拟嵌套事务怎么办?

标签: .net database transactions relational-database


【解决方案1】:

关于您的第二点(并阅读评论);确实,“一次失败,一切立即回滚”是 DTC 的固有部分;整个外部事务是原子单元。您也许可以在 DTC 事务中使用一些常规的 SQL 事务,但老实说,这让事情变得复杂......

我的建议:

  • 要么编写 SQL 以 成功(即,如果出现严重问题,则在回滚;不仅仅是为了方便实验查询)
  • 或者:不要使用 DTC

我更喜欢第一个,因为回滚很昂贵(提交很便宜)。

(我不确定你的第一点,但我相信这很像石头)

【讨论】:

    猜你喜欢
    • 2010-12-03
    • 1970-01-01
    • 1970-01-01
    • 2015-07-07
    • 2017-09-13
    • 2015-12-11
    • 2014-06-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多