2

我有一个名为 Party 的抽象基类。有几个具体的子类(Company、Person、Department)。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、84 行开始映射片段时出现问题:EntityTypes WOL.EFData.Person、WOL.EFData.Employee 被映射到 People 表中的相同行。映射条件可用于区分这些类型映射到的行。

4

1 回答 1

1

在每个类型映射的表中,EF 不期望有鉴别器配置。

modelBuilder.Entity<Person>().ToTable("People");
modelBuilder.Entity<Employee>().ToTable("Employees");

有关更多信息,请参阅本文

于 2012-06-22T01:01:36.140 回答