我一直在阅读有关 TransactionScope 的内容,并且对它与 ADO.Net 事务的互操作性有疑问。现在我们有一些数据访问方法,每个方法都调用一个存储过程并开始和提交他们自己的单独事务。直截了当,样板的东西,方法如下所示:
sqlCommand = //create SQLCommand with Stored proc
SqlTransaction myTransaction = myConnection.BeginTransaction();
sqlCommand.Transaction = sqlTransaction;
sqlCommand.Execute();
sqlTransaction.Commit();
我已经简化了一些事情,但你明白了。
我现在需要连续调用其中两个类方法,并将它们作为一个团队从我的业务层提交或回滚。我不能修改数据方法,所以我想把这两个调用放在一个 TransactionScope 块中。
如果我这样做,在创建 TransactionScope 时应该使用什么样的参数?我已经使用 TransactionScopeOption.RequiresNew 选项进行了尝试,并且一切似乎都有效,但这只是我的实验,我不确定这是否是可行的方法。(我会在这里指出,这些是专门的 SQL 事务,在同一个 SQL 服务器上运行。)
我看到 TransactionScope 具有处理 COM+ 事务的构造函数选项。因为我使用的是 ADO.Net 事务,所以这与这里有关吗?感谢您的建议。