Ich habe MongoDB nie verwendet; weiß nichts darüber. Ich antworte nur in Bezug auf TransactionScope
; also bin ich mir nicht sicher, ob dir das weiterhilft.
Bitte beziehen Sie sich auf Magic Of TransactionScope . Meiner Meinung nach gibt es drei Faktoren, auf die Sie achten sollten:
-
Die Verbindung zur Datenbank sollte innerhalb geöffnet werden der
TransactionScope
.Nicht sicher, aber es sieht so aus, als ob Sie manuell eintragen können Die Verbindung wurde außerhalb des Geltungsbereichs mit
connection.EnlistTransaction(Transaction.Current)
geöffnet .Wenn Sie sich Ihren Kommentar und die Bearbeitung ansehen, ist dies kein Problem.
-
Alle Operationen sollten auf demselben Thread ausgeführt werden.
und
Daher sollten alle Operationen auf demselben Thread ausgeführt werden.
-
Spielen Sie mit
TransactionScopeOption
(übergeben Sie es an den Konstruktor vonTransactionScope
) Werte nach Bedarf.Ich bin mir nicht sicher, was Ihr Code erwartet hat. Sie können mit diesen Aufzählungswerten spielen.
Wie Sie im Kommentar erwähnt haben, verwenden Sie async/await
.
Für MongoDB siehe dies hilft Ihnen.