Der Grund, warum die Operationen ausgeführt werden (d. h. Daten wurden nach dem Abbruch noch eingefügt), weil die Operationen nicht in einer Transaktionssitzung enthalten sind.
Alle CRUD-Operationen sollten eine überladene Methode haben, die IClientSessionHandle
angibt als erstes Argument. Zum Beispiel:
Task InsertOneAsync(IClientSessionHandle session, TDocument document, InsertOneOptions options = null, CancellationToken cancellationToken = default(CancellationToken));
Siehe:InsertOneAsync und ReplaceOneAsync im MongoDB .NET/C#-Treiber v2.8.1.
Um sicherzustellen, dass die Operationen in der Transaktionssitzung enthalten sind, übergeben Sie die Sitzung als Argument an die CRUD-Operationen. Alle Operationen, die das Session-Objekt nicht haben, werden außerhalb der Session ausgeführt.