2010-02-24 16 views
12

Tôi có một sự hỗ trợ nhiều-nhiều giữa một nhân viên và một đội. Thực thể Foreach Tôi có một kho lưu trữ.BestPractices: Có chấp nhận sử dụng nhiều hơn một kho lưu trữ trong một MVC-Controller không?

Bây giờ tôi sử dụng ASP.NET MVC và tạo một EmployeeController. Tôi cũng đã tạo Chế độ xem để chỉnh sửa Nhân viên. Đối với quan điểm này, tôi cần một DropDownList với tất cả các đội. Vấn đề là EmployeeController của tôi chỉ có EmployeeRepository. Vậy làm thế nào tôi có thể nhận được tất cả các đội? Giải pháp của tôi bây giờ là sử dụng hai kho lưu trữ.

Nhưng đây có phải là giải pháp tốt không?

Thay vào đó, tôi có thể tạo TeamController và viết phương thức trả về tất cả các nhóm (làm cách nào để thực hiện điều đó)?

Trả lời

8

Có, hoàn toàn chấp nhận được đối với bộ điều khiển có tham chiếu đến hai kho lưu trữ.

Thực tế, bộ điều khiển của tôi hoạt động với nhiều kho lưu trữ thường xuyên hơn không.

1

Thông thường bạn sẽ tạo một kho lưu trữ cho thư mục gốc tổng hợp. Kho lưu trữ sẽ có các phương thức trả về các thực thể được điền cho bộ điều khiển.

Nếu các thực thể hoàn toàn không có liên quan trong mô hình miền của bạn, bạn có thể muốn tạo một dịch vụ gói hai kho lưu trữ riêng biệt để lấy dữ liệu bạn cần.

+1

thư mục gốc tổng hợp trong liên kết nhiều thành viên :) là ai? Trong mô hình miền của tôi, tôi có một liên kết hai chiều hai chiều. Tôi tự hỏi mình có lợi ích gì khi tạo ra một mối quan hệ một chiều. Nhân viên sẽ hơn tổng gốc. Đội chỉ có một mối quan hệ với nhân viên vì vậy tôi nghĩ điều này sẽ ổn. – Rookian

+0

Đồng ý, khi phải đối mặt với cùng một vấn đề tôi đã đi với một dịch vụ miền để bọc lên các kho. – blu

+1

Đề xuất của tôi là 1: xem liệu có một gốc tổng hợp về mặt quy tắc miền hay không. Nếu không, 2: sử dụng dịch vụ miền. Những người khác đã đề xuất dịch vụ với + phiếu bầu, do đó, điều này được giảm giá là có vấn đề. – blu

3

Muốn đi thông minh? Không sử dụng kho lưu trữ bên trong bộ điều khiển nào. Thay vào đó, hãy sử dụng Dịch vụ miền. Nó không âm thanh quá tệ khi bạn nghĩ rằng một bộ điều khiển tích hợp công việc của nhiều dịch vụ phải không?

Các vấn đề liên quan