Tôi đã sử dụng TransactionScope trong quá khứ với các ứng dụng máy khách để quay trở lại giao dịch đa bước chưa hoàn tất. Cách tiếp cận đó dường như không có khả năng làm việc trong một ứng dụng Web.Chia nhỏ giao dịch cơ sở dữ liệu nhiều bước qua nhiều yêu cầu HTTP
Có ai có thể đề xuất các cách thức thực hiện nhiều bước, trên nhiều trang, đảm bảo quay lại nếu toàn bộ quá trình chưa hoàn tất? (trình duyệt của họ gặp sự cố hoặc khi đóng trình duyệt ở giữa quá trình)
Chắc chắn, tôi có thể ghi vào bảng tạm thời, sau đó chuyển bản ghi cuối cùng sang bảng thực trong một giao dịch, nhưng chạy nguy cơ của điều kiện chủng tộc. Tôi muốn bắt đầu một giao dịch, phục vụ một số trang, mỗi trang viết một mẩu giao dịch cho (các) bảng, sau đó hoàn tất giao dịch với một cam kết, và nếu giao dịch không được hoàn thành, thì nó sẽ được khôi phục khi phiên kết thúc.
Hay tôi không nghĩ đúng cách? Gợi ý?
Vì tôi đang sử dụng MVC 3, EF 4.1 và Ninject, tôi không chắc chắn điều đó sẽ ảnh hưởng như thế nào đến giải pháp, nhưng tôi nghĩ tôi sẽ bao gồm thông tin đó.
Điều đó có nghĩa là bạn phải xử lý đồng thời theo cách thủ công. Điều đó có vẻ như một mùi mã với tôi. –
Xử lý đồng thời thủ công trong ứng dụng web là khá phổ biến. Các giao dịch cơ sở dữ liệu nên ngắn nhất có thể - trong hầu hết các kịch bản thường gặp của phần thứ hai. Những gì bạn muốn làm có nghĩa là khóa chuyên sâu trong cơ sở dữ liệu trong vài phút = ứng dụng của bạn sẽ thực hiện rất tệ. –