我的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?
答案 0 :(得分:0)
当事务已回滚或已提交时,无法重复使用。创建一个新的。