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