我一直在阅读有关TransactionScope的内容,并对其与ADO.Net事务的互操作性有疑问。现在我们有一些数据访问方法,每个方法都会调用一个存储过程并开始并提交他们自己的单个事务。简单明了,样板的东西,方法是这样的:在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事务,这与此有关吗?感谢您的建议。
msdn链接已死亡。一个问题是,如果连接创建在作用域之外,则需要通过调用'connection.EnlistTransaction(Transaction.Current)'手动登录到环境事务。 – kristianp 2015-07-09 02:29:37
永久链接!我已经链接到MSDN文档,并发布了代码段。 – micahtan 2015-07-17 20:13:26