在Entity Framework 4.0中映射一对一的外键关系?

时间:2010-06-02 16:31:42

标签: entity-framework

我确定我错过了很简单的东西,但是假设我有两个实体,Employee和EmployeeType。

员工类型将包含“全职”,“承包商”,“实习生”等值。

Employee实体将包含一个且仅包含一个EmployeeType值。

所以我正在使用Model-First方法设计一个新的.edmx模型,并从模型中生成我的实际sql server数据模式。

我想在我的Employee实体EmployeeTypeId中添加一个整数类型的外键id,它将映射到EmployeeType实体的主键。

所以我继续在我的员工实体中完成了这项工作。我陷入困境的是,虽然实体框架设计者如何对EmployeeTypeId属性强制执行1:1引用约束?或者EF是否在幕后自动处理?

提前谢谢, 约翰

2 个答案:

答案 0 :(得分:3)

想想我找到了自己问题的答案。在EF .edmx表面设计器中,我需要右键单击我想要设置为另一个实体的外键id的标量属性,然后选择“实体键”。

完成后,我可以进入参照约束对话框并将我的新外键属性指向另一个实体。

如果您未明确将外键属性设置为“实体密钥”,则EF会认为您要将主键ID 指向另一个表。

欢呼声

答案 1 :(得分:2)

您首先在两个实体之间创建一个新关联(如果您还没有这样做)。只需右键单击edmx设计器,然后选择Add - >协会。

当您单击模型设计器中刚刚创建的关联时,可以在属性窗口中将End1 Multiplicity和End2 Multiplicity属性设置为1.这将确保您在使用时只能设置一个关系实体实体框架。顺便说一下,这不会在SQL Server中强制执行,因为SQL Server不会隐式支持1:1关系。