Никога не съм използвал MongoDB; не знам нищо за това. Отговарям само по отношение на TransactionScope
; така че не съм сигурен дали това ще ви помогне.
Моля, вижте Magic Of TransactionScope . IMO, има три фактора, които трябва да търсите:
-
Връзката към базата данни трябва да се отвори вътре
TransactionScope
.Не съм сигурен, но изглежда, че можете ръчно да се включите връзката се отвори извън обхвата с помощта на
connection.EnlistTransaction(Transaction.Current)
.Гледайки вашия коментар и редакцията, това не е проблем.
-
Всички операции трябва да се изпълняват в една и съща нишка.
и
Така че всички операции трябва да се изпълняват в една и съща нишка.
-
Играйте с
TransactionScopeOptionкод>
(предайте го на конструктора наTransactionScope
) стойности според вашите нужди.Не съм сигурен какво очаква да направи вашият код. Можете да играете с тези стойности на enum.
Както споменахте в коментара, вие използвате async/await
.
За MongoDB вижте дали това ви помага.