MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

transazione di più documenti non funziona in c# utilizzando il server della comunità mongodb 4.08

Il motivo per cui le operazioni vengono eseguite (cioè i dati sono stati ancora inseriti dopo l'interruzione), perché le operazioni non sono contenute all'interno di una sessione transazionale.

Tutte le operazioni CRUD dovrebbero avere un metodo di overload che specifica IClientSessionHandle come suo primo argomento. Ad esempio:

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

Vedere:InsertOneAsync e ReplaceOneAsync nel driver MongoDB .NET/C# v2.8.1.

Per garantire che le operazioni siano contenute all'interno della sessione transazionale, passare la sessione come argomento alle operazioni CRUD. Tutte le operazioni che non hanno l'oggetto sessione verranno eseguite al di fuori della sessione.