请参阅以下异常和堆栈跟踪,这似乎表明我正在尝试加入已处置的事务:
System.Data.EntityException:基础提供程序在 EnlistTransaction 上失败。---> System.ObjectDisposedException:无法访问已处置的对象。对象名称:“交易”。在 System.Transactions.Transaction.get_TransactionInformation() 在 Oracle.DataAccess.Client.OracleConnection.EnlistTransaction(Transaction transaction) 在 System.Data.EntityClient.EntityConnection.EnlistTransaction(Transaction transaction) --- 内部异常堆栈跟踪结束---在 System.Data.EntityClient.EntityConnection.EnlistTransaction(Transaction transaction) 在 System.Data.Objects.ObjectContext.EnsureConnection() 在 System.Data.Objects.ObjectContext.ExecuteStoreCommand(String commandText, Object[] 参数) 在 Reconciliation.Models。 BillLines.BillLines.Reconciliation.Interfaces.IBillLineEntities。清除旧组异常()
的主体ClearOldGroupExceptions()
完全封装在 a中,TransactionScope
其选项设置为TransactionScopeOption.Required
。
根据文档,这应该意味着:
范围需要事务。如果环境事务已经存在,它会使用环境事务。否则,它会在进入范围之前创建一个新事务。这是默认值。
因此,我很难理解为什么由于当前事务已被处理,为什么在进入范围之前没有创建新事务。
有任何想法吗?