EF 5 / One to Zero-or-One具有唯一约束

时间:2013-04-19 16:26:41

标签: entity-framework unique-constraint

在我的数据库中,我有三张桌子。 TestVP,TestProject和TestPitch。关系如此图所示。 TestVP是主表,TestProject和TestPitch在创建行时链接到TestVP。在EF World TestVP中是1,其他是0..1。

http://tinypic.com/r/a3pg69/6

http://tinypic.com/r/ve69w/6

TestVP和TestPitch与主键链接,因此EF理解它是正确的并使其为1 - 0..1。

TestVP和TestProject与FK链接。 ID< - > FKID和FKID是独一无二的。 EF在这种情况下生成1 - *关联。

如何在不改变数据库结构的情况下在EF中更改此内容?我希望TestVP和TestProject之间有1 - 0..1。

1 个答案:

答案 0 :(得分:1)

实体框架忽略数据库和they are not supported中的唯一键约束(主键除外)。因此,不支持与主键不相同的外键的一对一关联。

最佳解决方法是不在主体TestVP上使用导航属性,而只在依赖TestProject上使用导航属性。如果您正在使用数据库优先在EF创建它之后手动删除TestVP中的集合属性。

对于EF,这种关系仍然是一对多的,但你不会有意外地将多于一个实体添加到集合中(由于唯一约束而在数据库中失败)。