我已經編寫了TransactionContext類,該類在應用程序層實例化併發送到業務層和數據層,以允許嵌套事務。現在我必須決定: 1.如果需要,我應該使用顯式事務並讓每個函數調用開始,提交或回滾事務嗎? 2.我可以隱式啓動事務創建TransactionContext時,讓嵌套方法只回滾我應該在事務中包裝每個db調用嗎?
現在,因爲它更容易的代碼,我會用第二種方法:沒有擔心開始,在每一個方法提交或回滾,只是在事務上設置回滾標誌,並讓最頂級的方法擔心提交或回滾。問題是我不確定是否將所有數據庫流量包裝在事務中是一個好主意。
在事務內包裝所有數據庫調用時可能產生的負面影響是什麼?
我的設置是ASP.NET應用程序和MSSQL服務器數據庫。應用程序和數據庫可能位於不同的服務器上,如果這會影響決策。