Eu nunca usei o MongoDB; não sei nada sobre isso. Estou respondendo apenas em termos de
TransactionScope
; então não tenho certeza se isso vai te ajudar. Consulte o Magic Of TransactionScope . IMO, há três fatores que você deve procurar:
-
A conexão com o banco de dados deve ser aberta dentro oTransactionScope
.
Não tenho certeza, mas parece que você pode inscrever-se manualmente a conexão foi aberta fora do escopo usandoconnection.EnlistTransaction(Transaction.Current)
.
Olhando para o seu comentário e a edição, isso não é um problema.
-
Todas as operações devem ser executadas no mesmo thread.
e
Portanto, todas as operações devem ser executadas no mesmo thread.
-
Jogue comTransactionScopeOption
(passar para o construtor deTransactionScope
) valores conforme sua necessidade.
Não tenho certeza do que seu código esperava fazer. Você pode brincar com esses valores enum.
Como você mencionou no comentário, você está usando
async/await
. Para MongoDB, veja se isto te ajuda.