Lý do tại sao các hoạt động được thực thi (tức là dữ liệu vẫn được chèn sau khi hủy bỏ), bởi vì các hoạt động không được chứa trong một phiên giao dịch.
Tất cả các hoạt động CRUD phải có một phương thức được nạp chồng chỉ định IClientSessionHandle
như đối số đầu tiên của nó. Ví dụ:
Task InsertOneAsync(IClientSessionHandle session, TDocument document, InsertOneOptions options = null, CancellationToken cancellationToken = default(CancellationToken));
Xem: InsertOneAsync và ReplaceOneAsync trong trình điều khiển MongoDB .NET / C # v2.8.1.
Để đảm bảo các hoạt động được chứa trong phiên giao dịch, hãy chuyển phiên làm đối số cho các hoạt động CRUD. Bất kỳ hoạt động nào không có đối tượng phiên, sẽ được thực hiện bên ngoài phiên.