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_Table Per Hierarchy - Fatal编程技术网

Entity framework 实体框架-区分多个值

Entity framework 实体框架-区分多个值,entity-framework,table-per-hierarchy,Entity Framework,Table Per Hierarchy,在每个层级的表格场景中,是否可以在可能值列表上进行区分 e、 g.对于类型Color、DarkColor、LightColor 差不多 Map<DarkColor>(m => m.Requires("TheColor").HasValue(Red || Blue) Map<LightColor>(m => m.Requires("TheColor").HasValue(Yellow || White) Map(m=>m.Requires(“TheColo

在每个层级的表格场景中,是否可以在可能值列表上进行区分

e、 g.对于类型
Color、DarkColor、LightColor

差不多

 Map<DarkColor>(m => m.Requires("TheColor").HasValue(Red || Blue)
 Map<LightColor>(m => m.Requires("TheColor").HasValue(Yellow || White)
Map(m=>m.Requires(“TheColor”).HasValue(红色| |蓝色)
地图(m=>m.Requires(“颜色”).HasValue(黄色| |白色)

糟糕的示例,但希望您能理解!

首先,我不确定您想要的是否可行,EF希望处理鉴别器列,并且基于类类型,它希望设置鉴别器值,在这种情况下,它将如何设置该值,将其设置为哪一个可能的值。加载I时没有区别t,但是在尝试将其序列化到数据库时有点问题

1-您是否尝试对每个可能的值进行多个映射:)您可能会出现一个错误,即DarkColor已被映射

2-第二个建议是添加一个[NotMapped]ColorWeight属性,根据颜色返回黑色或白色,并使用此属性作为鉴别器字段,但我想鉴别器字段应该存在于表中。

不,这是不可能的

实体框架仅允许使用条件的交集而不是条件的并集进行映射。
您可以在和EDMX语法[2]中看到这一点。
*代码优先应该具有相同的映射功能


[2] 如果右键单击edmx文件并选择“打开方式…”-->“自动编辑器选择器(XML)”并尝试手动编辑映射条件,您将看到(从intellisense)没有输入“或”条件之间的选项。

我尝试了1。是的,它会抱怨