sql >> Base de Datos >  >> NoSQL >> MongoDB

la transacción de documentos múltiples no funciona en c # usando el servidor comunitario mongodb 4.08

La razón por la que se ejecutan las operaciones (es decir, los datos aún se insertaron después de la cancelación), porque las operaciones no están contenidas dentro de una sesión transaccional.

Todas las operaciones CRUD deben tener métodos sobrecargados que especifiquen IClientSessionHandle como su primer argumento. Por ejemplo:

Task InsertOneAsync(IClientSessionHandle session, TDocument document, InsertOneOptions options = null, CancellationToken cancellationToken = default(CancellationToken));

Ver:InsertOneAsync y ReplaceOneAsync en el controlador MongoDB .NET/C# v2.8.1.

Para asegurarse de que las operaciones estén contenidas dentro de la sesión transaccional, pase la sesión como argumento a las operaciones CRUD. Cualquier operación que no tenga el objeto de sesión, se ejecutará fuera de la sesión.