手动实体框架关联
本文关键字:关联 框架 实体 | 更新日期: 2023-09-27 18:19:12
我有以下表格:
Table Group (
id INT PK,
year INT PK,
name VARCHAR
)
Table Person (
id PK,
GroupID INT,
name VARCHAR
)
数据库没有定义外键,所以我想创建一个从Person表GroupID
到Group表id
的手动关联。
要做到这一点,右键单击Person并添加关联。我创建了一个"多对一"的组织,一切都很顺利。问题是当我添加映射时。因为Group
表有两个主键实体框架是从Person表映射到year
键的东西。
我需要做什么来创建关联?
您不能创建这样的关联,因为EF遵循与数据库相同的规则。所有来自主实体的PK列必须作为从属实体中的FK列存在。
唯一的方法可以是一些数据库视图选择具有Id和Name的不同组,并映射为只读实体,并在这两者之间构建导航。我没有试过,但我想应该有用。它也有自己的缺点,因为您将有两个完全不相关的组实体,而与人相关的实体将不接受任何修改(除非将自定义SQL命令或存储过程映射到插入、更新和删除操作)。