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

本文关键字:提交事务 语句 USING Complete 退出 TransactionScope | 更新日期: 2023-09-27 18:10:47

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

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

如何在退出using语句之前提交事务?

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

来自文档:

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

因此,在using语句结束之前,您似乎无法真正提交事务。