Nikdy jsem MongoDB nepoužíval; nic o tom neví. Odpovídám pouze z hlediska TransactionScope
; takže si nejsem jistý, jestli vám to pomůže.
Přečtěte si prosím Magic Of TransactionScope . IMO, existují tři faktory, které byste měli hledat:
-
Připojení k databázi by mělo být otevřeno uvnitř the
TransactionScope
.Nejste si jisti, ale vypadá to, že se můžete zaregistrovat ručně připojení bylo otevřeno mimo rozsah pomocí
connection.EnlistTransaction(Transaction.Current)
.Při pohledu na váš komentář a úpravu to není problém.
-
Všechny operace by měly běžet ve stejném vlákně.
a
Všechny operace by tedy měly běžet ve stejném vláknu.
-
Hrajte s
TransactionScopeOption
(předejte jej konstruktoruTransactionScope
) hodnoty podle vašich potřeb.Nejsem si jistý, co váš kód očekává. S těmito hodnotami výčtu si můžete hrát.
Jak jste uvedl v komentáři, používáte async/await
.
Pro MongoDB se podívejte, zda toto vám pomůže.