Dot-Net
了解 TransactionScopeOptions:RequiresNew = Suppress + Required?
我相信我理解
TransactionScopeOption.Suppress,TransactionScopeOption.Required但很難理解是什麼TransactionScopeOption.RequiresNew。根據我閱讀的最後一個解釋,以下兩個程式碼塊在功能上是否相同?這是什麼RequiresNew意思的準確表示嗎?using (var ts1 = new TransactionScope(TransactionScopeOption.RequiresNew)) { DoStuff(); ts1.Complete(); }和
using (var ts2 = new TransactionScope(TransactionScopeOptions.Suppress)) { using (var ts3 = new TransactionScope()) { DoStuff(); ts3.Complete(); } ts2.Complete(); // not required but recommended for consistency's sake }
要更好地理解事務範圍,您可以閱讀這篇 msdn 文章
除了創建的嵌套範圍的數量不同之外,我找不到很好的解釋這兩者有何不同。無論交易是否已經存在,這兩種情況都應該導致相同數量的交易。我找不到可以參考的好資源,但我總是會選擇 RequiresNew,而不是組合的 Suppress/Required。RequiresNew 基本上意味著:“無論是否已經有交易,都給我一個新的”。
更新:如果第一個連結仍然斷開,您可以在此處 的迴路存檔中找到它