3

次のモデルを検討してください。

public partial class Person
{
    public int Id { get; set; }
    public string Name { get; set; }
}

public partial class Teacher : Person
{
    public string ClassName { get; set; }
}

public partial class Student : Person
{
    public int NumberOfClasses { get; set; }
}

そのモデルとEntityFrameworkを使用して、「Student」インスタンスと「Teacher」インスタンスの両方を同じベースの「Person」インスタンスから派生させることは可能ですか?言い換えれば、「人」は「学生」と「教師」の両方になることができますか?

もしそうなら、このシナリオを表すために使用するのに最適な継承戦略は何でしょうか?

4

2 に答える 2

1

「abstract」キーワードがこれの鍵です。「部分的」を使用した理由がわかりません。最初に戦略を選択する必要があります-このリンクはすべてを説明しています。http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/implementing-inheritance-with-the-entity-framework-in-an-asp-net-mvc-application

public abstract class Person
{
    public int Id { get; set; }
    public string Name { get; set; }
}

public class Teacher : Person
{
    public string ClassName { get; set; }
}

public class Student : Person
{
    public int NumberOfClasses { get; set; }
}

*編集-使用例*

public void GetSomeDetailAboutAPerson(Person person)
{
    return person.SomeSharedDetailFromBaseClass;
}

public void Something()
{
    Teacher teacher = myService.GetTeacherById(3);
    var someDetailOrOther = this.GetSomeDetailAboutAPerson(teacher);
}
于 2013-03-13T13:21:28.967 に答える
-1

はい、それは可能です...そして人は学生か教師の両方かもしれません。

「継承戦略」とはどういう意味ですか?

あなたがそれをしている方法は、OKです。

これを確認してください: http ://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/implementing-inheritance-with-the-entity-framework-in-an-asp-net-mvc -応用

于 2013-03-13T13:20:47.877 に答える