手动实体框架关联

时间:2012-01-03 03:55:23

标签: c# linq entity-framework entity-framework-4.1

我有以下表格:

Table Group (
   id INT PK,
   year INT PK,
   name VARCHAR
)

Table Person (
    id PK,
    GroupID INT,
    name VARCHAR
)

数据库没有定义外键,所以我想创建一个从Person表GroupID到Group tables id的手动关联。

为此,我右键单击Person并添加关联。我创建了一个多对一的协会,一切正常。问题是当我去添加映射时。因为Group表有两个主键实体框架,所以从Person表中映射到year键。

创建关联需要做什么?

1 个答案:

答案 0 :(得分:0)

您无法创建此类关联,因为EF遵循与数据库相同的规则。来自主体的所有PK列必须作为依赖实体中的FK列存在。

唯一的方法是在某些数据库视图中选择具有Id和Name的不同组,并将其映射为只读实体,并在这两者之间构建导航。我没试过,但我想它应该有效。它有自己的缺点,因为你将有两个完全不相关的实体用于组,与person相关的实体将不接受任何修改(没有映射自定义SQL命令或存储过程来插入,更新和删除操作)。