2010-09-29 29 views
5

tôi thấy có một câu hỏi tương tự hỏi ở đây nhưng tôi không nghĩ đó là rất rõ ràng vì vậy tôi tạo khác: Entity Framework: Inheritance, change object typeThay đổi loại thừa kế trong Entity Framework

Tôi có một sinh viên Entity được thừa kế từ một Entity Người.

Tại một thời điểm nào đó, một người có thể trở thành sinh viên.

Có cách nào trong Khuôn khổ thực thể 4 để xử lý việc này mà không cần thủ tục được lưu trữ hoặc tạo một thực thể mới hay không.

+1

Đây là mô hình đối tượng bị hỏng. Trong OOP, các cá thể không thể thay đổi kiểu. EF không thêm tính năng này vào C# /. NET. Bạn nên sử dụng thành phần, không phải thừa kế, cho điều này. –

+0

Tôi đã có ấn tượng rằng đó là cho dù một sinh viên là một người hay cho dù một sinh viên có một người. Có lẽ bạn có thể chỉ cho tôi một liên kết nơi điều này được xác định? –

+0

Một đối tượng chỉ có thể có một loại. Vì vậy, bạn không thể tạo một loại 'RedDog' và cũng có một loại' BigDog', bởi vì một 'Dog' có thể vừa lớn vừa màu đỏ (Clifford). Tôi đã viết về vấn đề này ở đây: http://blogs.teamb.com/craigstuntz/2008/07/17/37825/ –

Trả lời

6

No. Kế thừa EF không hỗ trợ trường hợp này. Cách tốt nhất để tạo Sinh viên cho số hiện tại hiện tại là sử dụng thủ tục được lưu .
Xin lưu ý rằng đây không phải là quy trình được lưu trữ được kết nối với thực thể Sinh viên thông qua ánh xạ, nhưng một cách riêng biệt có thể được gọi rõ ràng từ mã. Lý tưởng nhất là nó sẽ là một SP mà phải mất một PersonId như một tham số, chèn một hàng mới vào Student bảng sử dụng mà PersonId, và sau đó trả về một hoàn Student để nó có thể được sử dụng immidiately.

+0

Chỉ cần đốt cháy bằng cách này. Có một giờ tôi sẽ không bao giờ quay lại! – Paul

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