Trên thực tế, MVC chủ yếu là một mô hình triển khai giao diện người dùng, vì vậy câu hỏi hơi khó. Tuy nhiên, thực sự chỉ có hai lựa chọn hình ảnh lớn. Trình điều khiển của bạn thường gửi các yêu cầu để tải hoặc lưu các thực thể trong mô hình của bạn bằng cách sử dụng 1) một lớp dịch vụ thuộc loại nào đó hoặc 2) mẫu Bản ghi hoạt động.
Lớp dịch vụ có thể có bất kỳ biểu mẫu nào, mặc dù sở thích cá nhân của tôi là làm việc với một bản tóm tắt kho lưu trữ cho các thực thể gốc tổng hợp, các triển khai cụ thể sẽ hoạt động với một loại ORM hoặc DAO nhẹ hoặc một DAO nhẹ hoặc API cho một số cửa hàng không liên quan nếu điều đó có ý nghĩa đối với ứng dụng.
Mẫu Bản ghi hoạt động có nghĩa là mô hình của bạn có trách nhiệm cho sự bền bỉ, mặc dù nó thường có nghĩa là một lớp cơ sở thuộc loại nào đó quản lý ánh xạ tới cửa hàng của bạn, vì vậy mô hình của bạn không thực sự liên quan trực tiếp.
Về cơ bản, bộ điều khiển gửi các yêu cầu đến các đối tượng bền vững, cho dù đó là cuộc gọi đến kho lưu trữ của bạn, triển khai UnitOfWork hoặc phương thức Save trên các thực thể của bạn. Nếu bạn đang sử dụng kho lưu trữ, các đối tượng mô hình của bạn là không biết gì.