傢伙,你一定在想,爲什麼我必須這樣做......我可能是錯的,但多個實例之間的連接我設計一個系統共享交易或類
它具有以下層
- 數據訪問層(手柄SQL事務)
- 數據管理員
- 表示層
數據管理器調用數據訪問層來執行sql事務。 和表示層中的特定函數調用多個數據管理器執行其作業...
如果每個數據管理器爲數據訪問類創建單獨的實例並且它們不共享該事務,則表示層上的函數是在多個事務中執行sql並且其中一個事務失敗時,它將回滾該事務,並且不會影響其他事務。我們不希望這樣......我們想要回滾所有發生的事務以完成該表示層功能的工作。
我不知道如何做到這一點...
難道我的設計是不正確的? 任何建議???
我使用SQL Server 2008和C#和.NET 4.0
交易你必須使用System.Transactions的命名空間,然後創建或註冊到需要的現有事務中。務必瞭解隔離級別以及底層DB/MSDTC默認設置。另請參閱http://stackoverflow.com/a/2273428/30225 –
在我看來,數據庫級別的交易應該謹慎使用或根本不使用。你的策略聽起來像是很容易陷入僵局。 –