我有一个名为Party的抽象基类。有几个具体的子类(公司,人,部门)。 Party有一个名为PartyType的属性,用作鉴别器。每种类型都在自己的表中,其配置如
Map<Person>(p => p.Requires("PartyType").HasValue("Person").ToTable("People");
一切都运作良好。 现在我想添加一个名为Employee的Person的子类。我该如何映射?我试过了
Map<Employee>(e => e.Requires("PartyType").HasValue("Employee")
.ToTable("Employees");
但这会产生运行时错误
(43,10):错误3032:从行开始映射片段时出现问题 43,44:EntityTypes WOL.EFData.Person,WOL.EFData.Employee正在 映射到表People中的相同行。映射条件可以 用于区分这些类型映射到的行。
答案 0 :(得分:1)
在每种类型的表中,EF不期望使用鉴别器配置。
modelBuilder.Entity<Person>().ToTable("People");
modelBuilder.Entity<Employee>().ToTable("Employees");
有关详细信息,请参阅this article。