La raison pour laquelle les opérations sont exécutées (c'est-à-dire que les données étaient toujours insérées après l'abandon), car les opérations ne sont pas contenues dans une session transactionnelle.
Toutes les opérations CRUD doivent avoir une méthode surchargée qui spécifie IClientSessionHandle
comme premier argument. Par exemple :
Task InsertOneAsync(IClientSessionHandle session, TDocument document, InsertOneOptions options = null, CancellationToken cancellationToken = default(CancellationToken));
Voir :InsertOneAsync et ReplaceOneAsync dans le pilote MongoDB .NET/C# v2.8.1.
Pour vous assurer que les opérations sont contenues dans la session transactionnelle, transmettez la session en tant qu'argument aux opérations CRUD. Toutes les opérations qui n'ont pas l'objet session seront exécutées en dehors de la session.