Entity framework 实体框架-区分多个值
在每个层级的表格场景中,是否可以在可能值列表上进行区分 e、 g.对于类型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
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。是的,它会抱怨