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_Ef Model First - Fatal编程技术网

Entity framework 实体框架模型优先与继承

Entity framework 实体框架模型优先与继承,entity-framework,ef-model-first,Entity Framework,Ef Model First,我正在使用Model First创建带有Entity Framework 6的数据库 我的课程如下: public partial class User : IdentityUser { } 其中User是由设计器中的EF生成的类。但是,如何将用户的继承属性映射到表的列 我最大的问题是,尽管我将IdentityUser的继承添加到用户类/表中,但当我返回EF设计器时,IdentityUser的属性不会显示。如果您使用的是非抽象基类,并且没有在用户上指定[表],因此,您的用户和IdentityU

我正在使用Model First创建带有Entity Framework 6的数据库

我的课程如下:

public partial class User : IdentityUser
{
}
其中User是由设计器中的EF生成的类。但是,如何将用户的继承属性映射到表的列


我最大的问题是,尽管我将IdentityUser的继承添加到用户类/表中,但当我返回EF设计器时,IdentityUser的属性不会显示。

如果您使用的是非抽象基类,并且没有在用户上指定[表],因此,您的用户和IdentityUser映射到一个表,然后使用TPH(每个层次结构的表:通过对SQL模式进行非规范化来启用多态性,并使用保存类型信息的类型鉴别器列)场景

看来这就是你需要的。您不必首先在代码中执行任何特殊操作来启用TPH。这是默认的继承映射策略。只需将其映射为任何其他实体,就完成了

映射示例:


但是DB映射工具如何真正了解要映射的继承属性呢?目前,尽管用户扩展了IdentityUser,但IdentityUser的属性不会显示在数据库中,也不会显示在EF建模工具中。使用代码优先,它将在我更新数据库时获取属性-它将通过反射机制学习,反射机制是CLR的一部分。啊,你的财产没有出现!我错过了。所以,这是另一个问题,我想你必须在你的原始问题中提到。我在原始问题的末尾添加了一个注释-