在我的数据库中,我有三张桌子。 TestVP,TestProject和TestPitch。关系如此图所示。 TestVP是主表,TestProject和TestPitch在创建行时链接到TestVP。在EF World TestVP中是1,其他是0..1。
TestVP和TestPitch与主键链接,因此EF理解它是正确的并使其为1 - 0..1。
TestVP和TestProject与FK链接。 ID< - > FKID和FKID是独一无二的。 EF在这种情况下生成1 - *关联。
如何在不改变数据库结构的情况下在EF中更改此内容?我希望TestVP和TestProject之间有1 - 0..1。
答案 0 :(得分:1)
实体框架忽略数据库和they are not supported中的唯一键约束(主键除外)。因此,不支持与主键不相同的外键的一对一关联。
最佳解决方法是不在主体TestVP
上使用导航属性,而只在依赖TestProject
上使用导航属性。如果您正在使用数据库优先在EF创建它之后手动删除TestVP
中的集合属性。
对于EF,这种关系仍然是一对多的,但你不会有意外地将多于一个实体添加到集合中(由于唯一约束而在数据库中失败)。