MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Transaktion mit mehreren Dokumenten funktioniert nicht in c# mit dem Community-Server mongodb 4.08

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.