2009-10-05 30 views
11

Tôi đã bắt đầu phát triển một ứng dụng bằng cách sử dụng Khuôn khổ thực thể.Cách hỗ trợ nhiều Mô hình khung thực thể trong cùng một giải pháp

Tôi đã thêm không gian tên để chứa tất cả mã quản lý người dùng MyApp.Users ví dụ và mô hình này đã được đánh dấu nội bộ vào không gian tên và chỉ hiển thị chức năng cho phần còn lại của hệ thống thông qua giao diện. Tất cả đều tốt.

Bây giờ tôi muốn xác định một không gian tên khác để xử lý logic nghiệp vụ cụ thể. Tôi muốn nó chứa một mô hình chỉ biết về một tập hợp con của lược đồ cơ sở dữ liệu, tuy nhiên tập hợp con này chồng chéo lên bảng Người dùng. Khi tôi cố gắng truy cập vào các mô hình thứ hai trong dự án chính, tôi nhận được lỗi này:

"Một EdmType không thể được ánh xạ đến các lớp học CLR nhiều lần"

Tôi cảm thấy rằng điều này không nên cư xử theo cách này. Sau khi tất cả các bảng người dùng đang được tham chiếu bởi 2 mô hình khác nhau trong 2 không gian tên khác nhau ... làm thế nào để VS thậm chí biết rằng bảng đang được tham chiếu hai lần?

Có ai nhìn thấy vấn đề này và có lẽ đã tìm ra cách cho phép cùng một bảng tồn tại trong các mô hình khác nhau?

Cách khác - Điều này có thể đại diện cho một số loại Khuôn mẫu chống khuôn mẫu thực thể mà tôi nên tránh không?

Trả lời

8

Để tái sử dụng loại trong nhiều mô hình, bạn cần phải làm theo một số specific steps outlined in this blog post. Giống như nhiều tính năng của khung Entity Framework nâng cao hơn, nó hoạt động nhưng không hoạt động tốt với nhà thiết kế GUI. Xem thêm this intro post để biết thêm ý tưởng về cách xử lý các mô hình lớn hơn.

+2

Liên kết tới bài đăng trên blog bị hỏng –

4

Bạn chắc chắn có thể có nhiều kiểu máy - nhưng chúng không được chồng lên nhau. Thông báo lỗi khá rõ ràng - nếu chúng chồng lên nhau, EF sẽ biết loại CLR nào để ánh xạ tới - không có cách nào để nói điều đó, thực sự.

Trong trường hợp của bạn, bạn có thể thử giải nén bảng Users thành mô hình thứ ba của riêng nó, nếu nó cũng cần được sử dụng ở hai nơi khác.

Marc

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