Non ho mai usato MongoDB; non ne so nulla. Rispondo solo in termini di TransactionScope
; quindi non sono sicuro che questo ti aiuterà.
Fare riferimento a Magic Of TransactionScope . IMO, ci sono tre fattori che dovresti cercare:
-
La connessione al database deve essere aperta all'interno il
TransactionScope
.Non sono sicuro, ma sembra che tu possa arruolarti manualmente la connessione aperta al di fuori dell'ambito utilizzando
connection.EnlistTransaction(Transaction.Current)
.Guardando il tuo commento e la modifica, questo non è un problema.
-
Tutte le operazioni dovrebbero essere eseguite sullo stesso thread.
e
Quindi, tutte le operazioni dovrebbero essere eseguite sullo stesso thread.
-
Gioca con
TransactionScopeOption
(passalo al costruttore diTransactionScope
) valori secondo le tue necessità.Non sono sicuro di cosa si aspettasse di fare il tuo codice. Puoi giocare con questi valori enum.
Come hai menzionato nel commento, stai usando async/await
.
Per MongoDB, controlla se questo ti aiuta.