我已經在我今天晚上知識刷牙,努力克服4年,因爲我的工作,爲公司的壞的編程習慣。我最近偶然發現的一件事是System.Transactions。在過去幾個小時閱讀了這些信息之後,我想我對自己的工作方式以及爲什麼要使用它們有充分的瞭解。但是,我所看到的所有示例都顯示了從事務內部調用的內聯T-SQL。做數據庫的訪問時,專門混合System.Transactions的與SqlTransactions
我幾乎使用存儲過程和現有的存儲過程都被包裹在自己SqlTransactions。你知道,使用'Begin Tran'然後回滾或提交。如果一個Stored Proc調用另一個存儲過程,它也會創建一個事務並且Commits冒泡,直到外層的提交或回退。很棒。
所以現在我的問題是,如果我想開始在我的代碼中使用System.Transactions - 爲了監視不能嵌套在單個存儲過程中的連續數據庫任務的簡單目的 - 這是如何與現有的SqlTransactions我已經在我的存儲特效?
在我的代碼中使用System.Transactions只會在實際提交之前添加一層保護,或者因爲我在SqlTransaction中顯式提交 - 數據是否會持久保留,而不管基於代碼提交還是回滾交易?
在這個問題上接受的答案是錯誤的。在System.Transaction中使用Sql事務會導致意外的行爲(即Sql事務不參與外部System.Transaction!)這樣做會有效地中和您的事務。 – 2016-10-19 13:45:47
感謝您跟進這些更正,比爾。 7年後,我甚至不記得是否我最終實施了任何需要這一點的事情,但最好有正確答案標記。 :) – WesleyJohnson 2016-10-20 16:04:29