Tôi đang cố gắng hiểu ánh xạ kế thừa trong EF4.Khuôn khổ thực thể 4 - Thừa kế
cơ sở dữ liệu của tôi có hai bảng với cấu trúc sau:
PersonCategory Bảng:
- CategoryID (int) (identity) (PK)
- CategoryType (nvarchar (50))
Bảng người
- PersonID (int) (identity) (PK)
- CategoryID (FK từ bảng PersonCategory)
- Tên (nvarchar (50))
- Mô tả (nvarchar (max))
bảng PersonCategory có bốn mục mỗi đại diện cho một thể loại - Sinh viên, CourseInstructor, Nhân viên và Cố vấn.
Từ đọc articles trực tuyến Tôi nghĩ Bảng mỗi phân cấp sẽ là mô hình phù hợp cho trường hợp này. Vì vậy, trong EF4, tôi đã tạo ra bốn thực thể (Student, CourseInstructor, Staff và Advisor) mỗi kế thừa từ bảng Person. Sau đó tôi ánh xạ từng người trong số họ vào bảng Person và thêm một điều kiện cho mỗi người (ví dụ: CategoryID = 1 cho thực thể Sinh viên và CategoryID = 2 cho thực thể Nhân viên) để phân biệt với những người khác. Tôi cũng đã loại bỏ thuộc tính CategoryID từ bảng Person và biến nó thành lớp trừu tượng. Nhưng tôi nhận được lỗi sau vì tôi đã xóa thuộc tính CategoryId từ bảng Person.
Lỗi 3015: Sự cố trong phân đoạn bản đồ bắt đầu từ dòng 101, 108, 114, 120, 126, 133: Ràng buộc khóa ngoại 'FK_Person_PersonCategory' từ bảng Person (CategoryID) thành bảng PersonCategory (CategoryID) :: Không đủ ánh xạ : Khóa ngoài phải được ánh xạ tới một số AssociationSet hoặc EntitySets tham gia vào một hiệp hội khóa ngoài ở phía khái niệm.
Thứ nguyên bảng có phải là mô hình phù hợp cho trường hợp này không? Nếu không thì tôi nên tiếp cận kịch bản này như thế nào trong EF4?
Cảm ơn con trỏ. Tôi hiểu điểm giải thích. Tôi có thể giải thích điều này vì EF4 không thể xử lý tình huống này? Bởi vì trong mô hình thực thể của ứng dụng của tôi, tôi muốn cả hai bảng có mặt với một liên kết. Làm thế nào tôi sẽ tiếp cận kịch bản này? – muruge