Jeg har aldrig brugt MongoDB; ved ikke noget om det. Jeg svarer kun i forhold til TransactionScope; så ikke sikker på, om dette vil hjælpe dig.
Se venligst Magic Of TransactionScope . IMO, der er tre faktorer, du skal kigge efter:
-
Forbindelse til databasen skal åbnes inde
TransactionScope.Ikke sikker, men det ser ud til, at du kan manuelt tilmelde dig forbindelsen åbnede uden for omfanget ved hjælp af
connection.EnlistTransaction(Transaction.Current).Når du ser på din kommentar og redigeringen, er dette ikke et problem.
-
Alle handlinger skal køre på samme tråd.
og
Så alle operationer skal køre på samme tråd.
-
Spil med
TransactionScopeOption(giv det til konstruktøren af TransactionScope) værdier efter dit behov.Jeg er ikke sikker på, hvad din kode forventede at gøre. Du kan lege med disse enum-værdier.
Som du nævnte i kommentaren, bruger du async/await .
For MongoDB, se om dette hjælper dig.