TransactionScope Complete()在退出USING语句之前不提交事务

时间:2013-04-25 11:57:08

标签: c# .net transactionscope

我遇到这种奇怪的行为,只有当using退出而不是在调用scope.Complete();时才会提交事务

using (TransactionScope scope = new TransactionScope(TransactionScopeOption.RequiresNew))
       {
        scope.Complete();
           // data still doesn't show in db
       }
       // now shows in db

如何在退出using声明之前提交交易?

1 个答案:

答案 0 :(得分:10)

来自documentation

  

如果TransactionScope对象创建了事务,则资源管理器之间的实际提交工作发生在 End Using 语句中。

因此,看起来你可以在using语句结束之前真正提交事务。