【发布时间】:2013-06-12 21:58:37
【问题描述】:
我有 TPH 继承。在 OnModelCreating 我指定这样的映射:
modelBuilder.Entity<Parent>()
.Map<Child1>(m=>m.Requires("TypeCode").HasValue("A"))
.Map<Child2>(m=>m.Requires("TypeCode").HasValue("B"))
...
但是当我尝试运行查询时
Parents.OfType<Child1>()
我收到错误“列鉴别器无效”。调试时我可以看到它运行 OnModelCreating 中的代码... EF 似乎忽略了 Map 定义?
【问题讨论】:
-
抱歉,解决了,我的错误是我在 OnModelCreating 中添加 Map 方法,然后在配置中添加了 ParentMap。通过将地图方法从 OnModelCreating 移动到 ParentMap 类来解决它。显然 ParentMap 配置覆盖了 OnModelCreating 中的映射