1

我正在尝试在两个表之间进行实体框架继承。

家长:

ParentTable
  Id: int primary key
  CustomAttribute: int

孩子:

ChilTable
  Id: int primary key (not the same one as the parent, Child specific Id)
  TCId: int foreign key to parent
  SomeInformation: String

由于某些原因,我想继续将“Id”命名为 ParentTable 和 ChildTable 的主键。这不应该打扰 EntityFramwork,因为我为子表创建了另一个名称为“CId”的自定义属性:

在此处输入图像描述

Child1 表映射如下:

在此处输入图像描述

但是当我“验证”模型时,VS2010 说......:

Error 3002: Problem in mapping fragments starting at line 103:Potential runtime violation of table Child1's keys (Child1.Id): Columns (Child1.Id) are mapped to EntitySet Parents's properties (Parents.CId) on the conceptual side but they do not form the EntitySet's key properties (Parents.Id).

基本上,我知道实体框架看到了一个问题,因为我们将表的主键映射到不是实体键的属性,但是我们应该如何使用继承?

仅当“子”表中没有主键时才允许继承?我应该将我的主键作为“简单键”吗?

提前致谢...

4

1 回答 1

1

EF 希望孩子的IdPK 对父母来说也是 FK。Child.IdPK和FK也是如此。

于 2012-07-10T14:31:58.173 回答