Saya tidak pernah menggunakan MongoDB; tidak tahu apa-apa tentang hal itu. Saya hanya menjawab dalam hal TransactionScope
; jadi tidak yakin apakah ini akan membantu Anda.
Silakan lihat Magic Of TransactionScope . IMO, ada tiga faktor yang harus Anda cari:
-
Koneksi ke database harus dibuka di dalam
TransactionScope
.Tidak yakin, tetapi tampaknya Anda dapat mendaftar secara manual koneksi dibuka di luar cakupan menggunakan
connection.EnlistTransaction(Transaction.Current)
.Melihat komentar dan editan Anda, ini bukan masalah.
-
Semua operasi harus dijalankan pada utas yang sama.
dan
Jadi, semua operasi harus dijalankan pada utas yang sama.
-
Mainkan dengan
TransactionScopeOption
(teruskan ke konstruktorTransactionScope
) nilai sesuai kebutuhan Anda.Saya tidak yakin apa yang diharapkan dari kode Anda. Anda dapat bermain dengan nilai enum ini.
Seperti yang Anda sebutkan di komentar, Anda menggunakan async/await
.
Untuk MongoDB, lihat apakah ini membantu Anda.