Entity framework 4 在实体框架4中的TPH继承场景中使用导航属性作为鉴别器

Entity framework 4 在实体框架4中的TPH继承场景中使用导航属性作为鉴别器,entity-framework-4,single-table-inheritance,Entity Framework 4,Single Table Inheritance,我正在尝试使用外键/导航属性作为鉴别器创建TPH继承层次结构,但在正确使用它时遇到了一些困难 我拥有以下实体: Person: Id (int) Name (nvarchar) PlaneId (int) CarId (int) Car: Id (int) Name (nvarchar) Plane: Id (int) Name (nvarchar) 使用PlaneId和CarId标记FKs。我在数据库中有相应的表,可以使用VS2010 EF向导创建概念模型

我正在尝试使用外键/导航属性作为鉴别器创建TPH继承层次结构,但在正确使用它时遇到了一些困难

我拥有以下实体:

Person:
  Id (int)
  Name (nvarchar)
  PlaneId (int)
  CarId (int)

Car:
  Id (int)
  Name (nvarchar)

Plane:
  Id (int)
  Name (nvarchar)
使用
PlaneId
CarId
标记FKs。我在数据库中有相应的表,可以使用VS2010 EF向导创建概念模型。然后,
个人
实体有两个导航属性,
汽车
平面

现在我想从Person派生两种类型:

Pilot (condition: PlaneId is not null)
Driver (condition: CarId is not null)
因此,我添加了entity Pilot,告诉它映射到Person,并添加条件
PlaneId不为null
。此时,Visual Studio(或者我猜是edmgen)抱怨必须映射具有“IsNull=false”条件的属性
Person.PlaneId

我的下一步是什么?我尝试过各种方法,但似乎都没能奏效。如果您有任何见解,我们将不胜感激。

您不能那样做