次の例外とスタック トレースを参照してください。これは、破棄されたトランザクションに参加しようとしていることを示しています。
System.Data.EntityException: 基になるプロバイダーが EnlistTransaction で失敗しました。---> System.ObjectDisposedException: 破棄されたオブジェクトにアクセスできません。オブジェクト名: 「トランザクション」。System.Transactions.Transaction.get_TransactionInformation() at Oracle.DataAccess.Client.OracleConnection.EnlistTransaction(Transaction transaction) at System.Data.EntityClient.EntityConnection.EnlistTransaction(Transaction transaction) --- 内部例外スタック トレースの終了 --- Reconciliation.Models. BillLines.BillLines.Reconciliation.Interfaces.IBillLineEntities。ClearOldGroupExceptions ()
の本体はClearOldGroupExceptions()
、オプションが に設定された内に完全にカプセル化されています。TransactionScope
TransactionScopeOption.Required
ドキュメントによると、これは次のことを意味するはずです。
スコープにはトランザクションが必要です。アンビエント トランザクションが既に存在する場合は、それを使用します。それ以外の場合は、スコープに入る前に新しいトランザクションを作成します。これがデフォルト値です。
したがって、現在のトランザクションが破棄されてから、スコープに入る前に新しいトランザクションが作成されなかった理由について困惑しています。
何か案は?