Причината, поради която операциите се изпълняват (т.е. данните все още са били вмъкнати след прекъсване), тъй като операциите не се съдържат в транзакционна сесия.
Всички CRUD операции трябва да имат претоварени методи, които указват IClientSessionHandle
като негов първи аргумент. Например:
Task InsertOneAsync(IClientSessionHandle session, TDocument document, InsertOneOptions options = null, CancellationToken cancellationToken = default(CancellationToken));
Вижте:InsertOneAsync и ReplaceOneAsync в MongoDB .NET/C# драйвер v2.8.1.
За да сте сигурни, че операциите се съдържат в транзакционната сесия, предайте сесията като аргумент на CRUD операциите. Всички операции, които нямат обекта на сесията, ще бъдат изпълнени извън сесията.