2011-03-09 37 views
2

的TransactionScope有幾個限制:交易過程中 1. IsolationLevel將無法改變 2.嵌套事務範圍是不是真的我們所知道的嵌套事務自定義的TransactionScope

是否可以編寫自定義的TransactionScope要解決這些限制還是它們被集成到System.Transactions的核心中,並且無法更改?

Upd。如果不是人們爲什麼要創建自定義的TransactionScopes?它允許解決什麼問題?

+0

再2 - 你什麼意思?他們*正是*我期望從DTC交易中得到的......或者您是否打算回滾內部交易但提交外部交易? (你不能這樣做) – 2011-03-09 06:21:35

+0

但是如果我想模擬嵌套事務時,如果我可以回滾內部事務而不回滾根事務呢? – SiberianGuy 2011-03-09 06:32:31

回答

1

重申你的第二點(並閱讀評論);事實上,「一次失敗,一切都立即回滾」是DTC的固有部分;整個外部交易是原子單位。您可能可以使用一些正規的SQL交易 DTC事務,而是要被使事情複雜誠實......

我的建議:

  • 要麼寫SQL來成功(即回滾,如果某樣東西很厲害,只是實驗查詢方便不)
  • 或:不使用DTC

我更喜歡第一個,因爲回滾比較昂貴(提交很便宜)。

(我不知道確切你的第一個點,但我相信是相當石等)