Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework 实体框架-表中每个类型继承的关系_Entity Framework_Inheritance_Relationships_Table Per Type - Fatal编程技术网

Entity framework 实体框架-表中每个类型继承的关系

Entity framework 实体框架-表中每个类型继承的关系,entity-framework,inheritance,relationships,table-per-type,Entity Framework,Inheritance,Relationships,Table Per Type,我的模型中存在以下情况: public abstract class Person { public int PersonId { get; set; } public int FullName { get; set; } public int LanguageId { get; set; } } public class Student : Person { public int PersonId { get; set; } . .//some data . } public clas

我的模型中存在以下情况:

public abstract class Person 
{
public int PersonId { get; set; }
public int FullName { get; set; }

public int LanguageId { get; set; }
}

public class Student : Person
{
public int PersonId { get; set; }
.
.//some data
.
}

public class Teacher : Person
{
public int PersonId { get; set; }
.
.//some data
.
}

public class Language 
{
public int LanguageId { get; set; }
public string Name { get; set; }
}
我使用TPT方法进行继承,并且运行良好。我的问题是:我想添加Language类,其中一个人有一种语言,而一种语言有很多人,所以这是一种一对多的关系。但是在TPT方法中,导航属性不能被继承,所以我不能在Person类中创建Language对象,也不能在mapping类中创建relationship,我不想在Language类中创建导航属性,因为这个表在我的模型中有很多关系,我不想删除Person类中的LanguageId,因为它是所有子类的公共属性

我在几本书、几篇文章和这几篇文章中进行了研究,但什么也没发现。在所有示例中,解释相同的情况(如),但关系方向相反


我会感谢你的帮助,谢谢

正如您在TPT中所说,导航属性不能被继承

一种解决方案是在教师和学生层面上为语言课添加一种关系

另一种方法是按照继承人的方式转移到一张桌子上