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