簡體   English   中英

多級繼承。 實體框架C#

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM