Tôi đang cố gắng xây dựng một hệ thống theo kho lưu trữ và đơn vị mẫu công việc để cho phép kiểm tra đơn vị thiếu hiểu biết, vv .. Tôi đang tìm kiếm lời khuyên về cách xử lý Rollback. Lý tưởng nhất là tôi muốn sử dụng POCO's nhưng tôi nghĩ rằng tôi có thể cần ít nhất là thực hiện một giao diện để cung cấp một vài bit và miếng.Đơn vị công việc, tùy chọn cuộn lùi
Vì vậy, giả sử chúng tôi có hai kho lưu trữ, một ngữ cảnh/đơn vị công việc.
Tôi thêm một mục, sửa đổi một mục khác và xóa mục thứ ba. Lặp lại cho kho thứ hai, sau đó tôi gọi rollback.
Trong quá khứ tôi đã sử dụng một cái gì đó giống như một DataSet cho việc này. Mỗi đối tượng có trạng thái đang chờ xử lýMới, đang chờAmended, pendingDeleted, clean. Ngoài ra còn có một bản sao cuối cùng tồn tại phiên bản của đối tượng cho rollback.
Bạn sẽ triển khai điều này bằng cách nào?
EDIT:
Ok, đây là những gì tôi nghĩ rằng tôi đang thực sự cố gắng để có được đầu của tôi xung quanh. Chuẩn bị để có khuôn mẫu :)
Cuối cùng, dự án là WPF MVVM. Vì vậy, chúng tôi đang xem Mô hình với cửa hàng ở đây.
Tôi nghĩ rằng tôi đã cố gắng để mô hình hóa với ý tưởng về kho lưu trữ, khi tôi nghĩ mô hình nên sử dụng UOW và kho lưu trữ để cung cấp các tính năng mà mô hình cần cung cấp. Điều đó có tốt hơn không?
Tôi muốn có sự thiếu hiểu biết lâu dài hoàn toàn, vì vậy hãy tưởng tượng miền của tôi bao gồm Khách hàng, Đơn đặt hàng và Đơn đặt hàng.
GUI giả sử có một nút đặt hàng mới cho phép người dùng điền chi tiết khách hàng, chi tiết đơn đặt hàng và chi tiết đơn đặt hàng 1-n. Ông nhấn lưu và họ đi đến cơ sở dữ liệu, ông nhấn hủy họ không. Vì vậy, trong trường hợp này, mô hình có thể yêu cầu CustomerRepository cho một khách hàng, sau đó OrderRepository cho một Order mới, sau đó OrderLineRepository cho mỗi Line mới, sau đó yêu cầu Unit of Work lưu chúng.
Điều đó có hợp lý không? Nó cho tôi, tôi nghĩ đó là nơi mà sự phân chia được xác định. Tôi hơi bị cám dỗ khi có một API khác giữa mô hình và kho lưu trữ. Không, đó là ngớ ngẩn.
CHỈNH SỬA 2: Đây là một bài viết tuyệt vời có loại helped một chút.
Đó là một bài viết hay, tôi chưa từng thấy điều đó trước đây. Tôi nghĩ rằng tôi vẫn đang đấu tranh một chút với các lớp học biết lớp nào khác, tức là kho lưu trữ biết về đơn vị công việc, đơn vị công việc có biết về tất cả các kho lưu trữ không? Trên thực tế, đây là một câu hỏi hay: Tôi sẽ đặt nó trong một chỉnh sửa ở trên nếu điều đó là ok ... – Ian
Tôi đã thêm phản hồi của mình vào bản chỉnh sửa vì quá dài để nhận xét – KallDrexx
Kall, đó gần như chính xác cách tôi đã thực hiện quá khứ, và nó có ý nghĩa hoàn hảo với tôi :) Tôi sẽ coi đó là câu trả lời, nhưng nếu bất cứ ai kịch liệt không đồng ý xin hãy nói :) – Ian