Je n'ai jamais utilisé MongoDB ; n'en sais rien. Je ne réponds qu'en termes de TransactionScope
; donc je ne sais pas si cela vous aidera.
Veuillez vous référer à la Magic Of TransactionScope . IMO, il y a trois facteurs que vous devez rechercher :
-
La connexion à la base de données doit être ouverte à l'intérieur le
TransactionScope
.Pas sûr, mais il semble que vous pouvez s'inscrire manuellement la connexion s'est ouverte en dehors de la portée à l'aide de
connection.EnlistTransaction(Transaction.Current)
.En regardant votre commentaire et la modification, ce n'est pas un problème.
-
Toutes les opérations doivent s'exécuter sur le même thread.
et
Ainsi, toutes les opérations doivent s'exécuter sur le même thread.
-
Jouez avec
TransactionScopeOption
(passez-le au constructeur deTransactionScope
) selon vos besoins.Je ne suis pas sûr de ce que votre code s'attendait à faire. Vous pouvez jouer avec ces valeurs d'énumération.
Comme vous l'avez mentionné dans le commentaire, vous utilisez async/await
.
Pour MongoDB, voyez si ceci vous aide.