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.