MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Modèle de référentiel avec MongoDB - plusieurs unités de travail avec une seule transaction

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 :

  1. 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.

  2. 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.

  3. Jouez avec TransactionScopeOption (passez-le au constructeur de TransactionScope ) 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.