[英]Multiple level inheritance. Entity Framework C#
我一直在使用Visual Studio 2015在實體框架6(代碼優先)上處理繼承。在這一點上,我想嘗試像這樣的多重繼承(這是一個摘要,而不是確切的語法):
public abstract class Person {
public String Name
public String LastName
}
public class Teacher : Person {
[Key]public int Id_Teacher
}
public class Student : Person {
[Key] public int Id_Student
public string code_s
}
public class ExchangeStudent : Student {
[Key] public int Id_ExchangeStud
public string HomeUniversity
}
我邁出的第一步是創建Person和Child表Teacher&Student,但是創建第三個child表卻無法正常工作。
我第一步使用了TPC,因此在上下文中,我獲得了DbSet的學生和教師。
有什么方法可以實現第三個表EXCHANGE STUDENT?
非常感謝。
如果我理解正確,則您的模型設計應如下所示,
public class Person
{
[key] //No need to mention [key] annotation here, Because EF will automatically understand Id property will act as Primary Key.
public int Id { get; set; }
public string Name { get; set; }
public string LastName { get; set; }
}
public class Teacher: Person
{
}
public class Student: Person
{
public string Code { get; set; }
}
public class ExchangeStudent : Student
{
public string HomeUniversity { get; set; }
}
您必須避免每個子類中的每個[Key]屬性。 Base類將具有一個Id屬性,該屬性將用作Table和所有其他子類的PrimaryKey。
如果您按照上述步驟操作,則將遷移腳本應用到表中后,系統將為子類創建一個表(人員)和區分項列。
希望這可以幫助您前進!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.