调用时出现 InvalidOperationException Transaction.Current

InvalidOperationException when calling Transaction.Current

我的 DatabaseClient class 中有代码通过检查 ThreadStatic 属性、Transaction.Current:

检查是否存在活动的 TransactionScope
if (Transaction.Current == null)
{
    // open a new connection and do things
}

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

System.InvalidOperationException: The current TransactionScope is already complete.

我需要做什么才能"reset"当前交易,以便我可以再次安全地检查Transaction.Current?

当一个事务被回滚或提交后,它就不能再使用了。新建一个。

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