2010-06-22 20 views

Trả lời

7

Nói chung, bạn sẽ phải tham khảo mô hình tên miền của bạn trong Xem Models của bạn, hoặc ít nhất là nạp Models miền trong các bộ điều khiển và chuyển thông tin vào Mô hình Xem của bạn.

Tôi muốn giữ cho Bộ điều khiển và Chế độ xem đơn giản/câm càng tốt, vì cả Mô hình miền và Mô hình xem đều dễ kiểm tra hơn.

Vì vậy, tôi thường tham chiếu Mô hình miền của mình bên trong Mô hình chế độ xem của mình. Đôi khi tôi sử dụng tập hợp, đôi khi tôi chỉ sao chép các thuộc tính (Trong một số dự án chỉ với mã cũ thuần túy, trong các dự án khác sử dụng trình ánh xạ tự động)

+0

nhưng thực hiện điều này chỉ hợp lý và chỉ hoạt động tốt khi mô hình miền của bạn phù hợp với nhu cầu của chế độ xem. Tôi nghe nói rằng một mô hình xem nên chỉ gần như chứa các thuộc tính chuỗi đã được định dạng. Btw bạn KHÔNG phải sao chép các thuộc tính. Tôi đề nghị bạn đọc về AutoMapper, chỉ cần google nó! Đó là một công cụ tuyệt vời. – Rookian

+0

Lưu ý Tôi đã nói trong một số dự án tôi sao chép, trong một số dự án khác tôi sử dụng trình ánh xạ tự động, cụ thể là AutoMapper :) Ngoài ra, tôi thực chất là những gì bạn mô tả. Tôi KHÔNG sử dụng Mô hình miền của mình làm Mô hình chế độ xem của mình. Chúng tôi đã từng làm điều này và chúng tôi hơi cắn một vài lần. – CubanX

+0

Vì vậy, khi tôi hiểu bạn đúng, bạn trộn các đối tượng mô hình xem và các đối tượng mô hình miền. Và bạn gửi cả hai (tức là tổng hợp có chứa một đối tượng mô hình khung nhìn và đối tượng mô hình miền) cho khung nhìn là tốt? – Rookian

2

Tôi có xu hướng tạo các kiểu xem riêng biệt chứa những gì tôi cần hiển thị chế độ xem. AutoMapper là công cụ tạo ra để làm việc này dễ dàng hơn.

+1

Bạn có thể giải thích chi tiết hơn tại sao bạn KHÔNG trộn các đối tượng mô hình xem với các đối tượng mô hình miền? Ưu và nhược điểm ... – Rookian

+0

Các lớp mô hình miền của tôi thường có rất nhiều phương thức trình kích hoạt trạng thái trên chúng. Tôi không muốn để lộ những điều này trực tiếp đến lớp xem đơn giản để ngăn chặn sự nhầm lẫn về nơi mà các phương pháp đó nên được gọi từ đó. Tôi yêu cầu tất cả các lệnh miền của tôi phải trải qua một lớp dịch vụ nối các phiên DB thích hợp, kiểm tra bảo mật, v.v. Tuy nhiên, tôi thường biểu diễn các đối tượng giá trị từ miền của tôi thẳng đến lớp MVC. Ngoài ra có một sự tách biệt rõ ràng giữa các mô hình đọc vs viết (CQS) giúp giữ cho tổ chức này được tổ chức. – Ryan

+0

Tôi cố gắng làm cho nó để tôi có một mô hình xem cho mỗi khung nhìn và mô hình khung nhìn đó có những gì nó cần để tạo ra khung nhìn. Mô hình xem đó có thể được tạo thành từ nhiều mô hình miền và chỉ sử dụng một số trường từ mỗi mô hình. –

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