1

我的 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?

4

1 回答 1

0

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

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

于 2018-05-02T02:43:53.657 回答