1

在我的数据库中,我有三个表。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。

4

1 回答 1

1

实体框架会忽略数据库中的唯一键约束(除了主键)并且它们不受支持。因此,不支持与与主键不同的外键的一对一关联。

最好的解决方法是不在主体上使用导航属性,TestVP而仅在依赖上使用TestProject。如果您使用的是数据库,则TestVP在 EF 创建后手动删除集合属性。

对于 EF,关系仍然是一对多的,但您不会有意外向集合中添加一个以上实体的风险(由于唯一约束,这将在数据库中失败)。

于 2013-04-19T18:02:18.207 回答