Tôi chưa bao giờ sử dụng MongoDB; không biết bất cứ điều gì về nó. Tôi chỉ trả lời về mặt TransactionScope
; vì vậy không chắc liệu điều này có giúp ích cho bạn không.
Vui lòng tham khảo Magic Of TransactionScope . IMO, có ba yếu tố bạn nên tìm kiếm:
-
Kết nối với cơ sở dữ liệu phải được mở bên trong
TransactionScope
.Không chắc chắn nhưng có vẻ như bạn có thể nhập thủ công kết nối được mở bên ngoài phạm vi bằng cách sử dụng
connection.EnlistTransaction(Transaction.Current)
.Nhìn vào nhận xét của bạn và bản chỉnh sửa, đây không phải là vấn đề.
-
Tất cả các hoạt động phải chạy trên cùng một chuỗi.
và
Vì vậy, tất cả các hoạt động phải chạy trên cùng một chuỗi.
-
Chơi với
TransactionScopeOption
(chuyển nó tới hàm tạo củaTransactionScope
) giá trị theo nhu cầu của bạn.Tôi không chắc mã của bạn sẽ làm gì. Bạn có thể chơi với các giá trị enum này.
Như bạn đã đề cập trong nhận xét, bạn đang sử dụng async/await
.
Đối với MongoDB, hãy xem liệu cái này giúp bạn.