我已经编写了TransactionContext类,该类在应用程序层实例化并发送到业务层和数据层,以允许嵌套事务。现在我必须决定: 1.如果需要,我应该使用显式事务并让每个函数调用开始,提交或回滚事务吗? 2.我可以隐式启动事务创建TransactionContext时,让嵌套方法只回滚我应该在事务中包装每个db调用吗?
现在,因为它更容易的代码,我会用第二种方法:没有担心开始,在每一个方法提交或回滚,只是在事务上设置回滚标志,并让最顶级的方法担心提交或回滚。问题是我不确定是否将所有数据库流量包装在事务中是一个好主意。
在事务内包装所有数据库调用时可能产生的负面影响是什么?
我的设置是ASP.NET应用程序和MSSQL服务器数据库。应用程序和数据库可能位于不同的服务器上,如果这会影响决策。