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:
-
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.
-
Todas las operaciones deben ejecutarse en el mismo subproceso.
y
Por lo tanto, todas las operaciones deben ejecutarse en el mismo subproceso.
-
Juega con
TransactionScopeOption
(páselo al constructor deTransactionScope
) 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.