我一直在閱讀有關TransactionScope的內容,並對其與ADO.Net事務的互操作性有疑問。現在我們有一些數據訪問方法,每個方法都會調用一個存儲過程並開始並提交他們自己的單個事務。簡單明瞭,樣板的東西,方法是這樣的:在TransactionScope中使用ADO.Net事務?
sqlCommand = //create SQLCommand with Stored proc
SqlTransaction myTransaction = myConnection.BeginTransaction();
sqlCommand.Transaction = sqlTransaction;
sqlCommand.Execute();
sqlTransaction.Commit();
我已經簡化的東西一點,但你的想法。
我現在需要連續調用其中的兩個類方法,並將它們作爲一個團隊從我的業務層提交或回滾。我無法修改數據方法,所以我正在考慮將這兩個調用放在TransactionScope塊中。
如果我這樣做,創建TransactionScope時應該使用什麼樣的參數?我已經使用TransactionScopeOption.RequiresNew選項嘗試過了,事情似乎有效,但這只是我的嘗試,我不確定是否要走。 (在這裏我要指出的是,這些都是SQL事務完全是相同的SQL服務器上運行。)
我看到的TransactionScope具有構造選項處理COM +的交易。因爲我正在使用ADO.Net事務,這與此有關嗎?感謝您的建議。
msdn鏈接已死亡。一個問題是,如果連接創建在作用域之外,則需要通過調用'connection.EnlistTransaction(Transaction.Current)'手動登錄到環境事務。 – kristianp 2015-07-09 02:29:37
永久鏈接!我已經鏈接到MSDN文檔,併發布了代碼段。 – micahtan 2015-07-17 20:13:26