MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

transação de vários documentos não funciona em c # usando o servidor de comunidade mongodb 4.08


A razão pela qual as operações são executadas (ou seja, os dados ainda foram inseridos após o aborto), porque as operações não estão contidas em uma sessão transacional.

Todas as operações CRUD devem ter métodos sobrecarregados que especificam IClientSessionHandle como seu primeiro argumento. Por exemplo:
Task InsertOneAsync(IClientSessionHandle session, TDocument document, InsertOneOptions options = null, CancellationToken cancellationToken = default(CancellationToken));

Consulte:InsertOneAsync e ReplaceOneAsync no driver MongoDB .NET/C# v2.8.1.

Para garantir que as operações estejam contidas na sessão transacional, passe a sessão como um argumento para as operações CRUD. Quaisquer operações que não tenham o objeto de sessão serão executadas fora da sessão.