我有以下表格:
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
键。
创建关联需要做什么?
答案 0 :(得分:0)
您无法创建此类关联,因为EF遵循与数据库相同的规则。来自主体的所有PK列必须作为依赖实体中的FK列存在。
唯一的方法是在某些数据库视图中选择具有Id和Name的不同组,并将其映射为只读实体,并在这两者之间构建导航。我没试过,但我想它应该有效。它有自己的缺点,因为你将有两个完全不相关的实体用于组,与person相关的实体将不接受任何修改(没有映射自定义SQL命令或存储过程来插入,更新和删除操作)。