sql >> Base de Datos >  >> NoSQL >> MongoDB

Patrón de repositorio con MongoDB:múltiples unidades de trabajo con una transacción

Nunca usé MongoDB; no se nada al respecto Solo estoy respondiendo en términos de TransactionScope; así que no estoy seguro de si esto te ayudará.

Consulte la La magia de TransactionScope . En mi opinión, hay tres factores que debe buscar:

  1. La conexión a la base de datos debe abrirse dentro el TransactionScope .

    No estoy seguro, pero parece que puedes inscribirte manualmente la conexión se abrió fuera del alcance usando connection.EnlistTransaction(Transaction.Current) .

    Mirando tu comentario y la edición, esto no es un problema.

  2. Todas las operaciones deben ejecutarse en el mismo subproceso.

    y

    Por lo tanto, todas las operaciones deben ejecutarse en el mismo subproceso.

  3. Juega con TransactionScopeOption (páselo al constructor de TransactionScope ) valores según su necesidad.

    No estoy seguro de lo que su código esperaba hacer. Puedes jugar con estos valores de enumeración.

Como mencionaste en el comentario, estás usando async/await .

Para MongoDB, vea si esto te ayuda.