【发布时间】:2011-09-27 14:21:36
【问题描述】:
我编写了在应用层实例化的 TransactionContext 类,并向下发送到业务和数据层,允许嵌套事务。现在我必须决定: 1. 如果需要,我应该使用显式事务并让每个函数调用事务的开始、提交或回滚吗? 2.我可以在创建TransactionContext时隐式启动事务,让嵌套方法只回滚
现在,我将使用第二种方法,因为它更容易编码:不用担心每个方法中的开始、提交或回滚,只需在事务上设置回滚标志,让最上面的方法担心提交或回滚。问题是我不确定将所有数据库流量包装在事务中是否是个好主意。
将所有数据库调用封装在事务中可能会产生哪些负面影响?
我的设置是 ASP.NET 应用程序和 MSSQL Server 数据库。如果这会影响决策,那么应用程序和数据库可能会位于不同的服务器上。
【问题讨论】:
标签: database language-agnostic transactions