私はMongoDBを使用したことはありません。それについては何も知りません。私はTransactionScope
に関してのみ答えています;だから、これがあなたを助けるかどうかわからない。
Magic OfTransactionScope を参照してください。 。 IMO、探すべき3つの要素があります:
-
データベースへの接続は内部で開く必要があります
TransactionScope
。わかりませんが、手動で参加 できるようです。
connection.EnlistTransaction(Transaction.Current)
を使用してスコープ外で接続が開かれました 。コメントと編集を見ると、これは問題ではありません。
-
すべての操作は同じスレッドで実行する必要があります。
および
したがって、すべての操作は同じスレッドで実行する必要があります。
-
TransactionScopeOption<で遊ぶ/ code>
(TransactionScope
のコンストラクターに渡します )必要に応じた値。あなたのコードが何を期待していたのかわかりません。この列挙値で遊ぶことができます。
コメントで述べたように、あなたは async / await
を使用しています 。
MongoDBについては、これ かどうかを確認してください。 お手伝いします。