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.