实体框架6,不同的子属性共享相同的基本外键

时间:2016-04-20 07:05:21

标签: c# entity-framework fluent tph

我有一个类层次结构,它是数据库中的TPH。所以我们有一个班级Base,以及从中继承的孩子。我们说它们是ChildrenAChildrenBChildrenC

Base类层次结构与另一个类层次结构(也在数据库中的TPH中表示)具有概念关系,其中基类为RelatedBase,具有子类RelatedChildrenA,{{1 },RelatedChildrenB

概念关系是:

  • RelatedChildrenC只能与ChildrenA
  • 相关
  • RelatedChildrenA只能与ChildrenB
  • 相关
  • RelatedChildrenB只能与ChildrenC
  • 相关

我正在使用independent association RelatedChildrenC方法的实体框架流畅映射,以避免将外键id作为属性公开。

因此,基本上,从TPH层次结构到另一个TPH层次结构只有一个外键。

鉴于这个外键在数据库中被称为RelatedId,我试图表达我的流畅映射如下:

MapKey

不幸的是,这会产生以下错误:

  

在模型生成期间检测到一个或多个验证错误:   RelatedId:Name:类型中的每个属性名称必须是唯一的。属性   名称'RelatedId'已定义。 RelatedId:名称:每个属性   类型中的名称必须是唯一的。属性名称“RelatedId”已经存在   定义

是否可以将相同的子属性映射到相同的基本外键?

0 个答案:

没有答案