Jag har aldrig använt MongoDB; vet inget om det. Jag svarar bara i termer av TransactionScope; så inte säker på om detta kommer att hjälpa dig.
Se Magic Of TransactionScope . IMO, det finns tre faktorer du bör leta efter:
-
Anslutning till databasen bör öppnas inuti
TransactionScope.Inte säker men det ser ut som att du kan anropa manuellt anslutningen öppnades utanför räckvidden med
connection.EnlistTransaction(Transaction.Current).När du tittar på din kommentar och redigeringen är detta inget problem.
-
Alla operationer bör köras på samma tråd.
och
Så alla operationer bör köras på samma tråd.
-
Spela med
TransactionScopeOption(skicka det till konstruktören avTransactionScope) värden enligt ditt behov.Jag är inte säker på vad din kod förväntas göra. Du kan leka med dessa uppräkningsvärden.
Som du nämnde i kommentaren använder du async/await .
För MongoDB, se om detta hjälper dig.