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.