InvalidOperationException when calling Transaction.Current



我的 DatabaseClient 类中有代码,它通过检查 ThreadStatic 属性 Transaction.Current 来检查是否存在活动的 TransactionScope:

if (Transaction.Current == null)
{
// open a new connection and do things
}

我有使用此类的代码,该代码创建一个 TransactionScope,执行两个数据库操作,然后完成它。然后,应用程序继续执行进一步的数据库工作。但是现在当它调用上面的代码时,我得到了一个异常:

System.InvalidOperationException: The current TransactionScope is already complete.

我需要做什么才能"重置"当前事务,以便我可以再次安全地检查 Transaction.Current?

当事务已回滚或提交时,它不能重用。创建一个新的。

这里有一些示例代码: https://learn.microsoft.com/en-gb/dotnet/api/system.transactions.transactionscope?view=netframework-4.7

相关内容

  • 没有找到相关文章

最新更新