实体框架是否支持父母引用0..1子女,其子女引用1父母?

时间:2012-07-23 03:25:39

标签: c# wcf sql-server-2008 entity-framework

我有两张桌子。一个是Request,另一个是Response。每个请求都有一个可空外键引用Response记录。

每个Response记录都有一个不可为空的外键引用,它来自Request条目。

我正在尝试为此模型生成实体,但未通过错误验证:Multiplicity is not valid in role Response [...]. Because the dependent role properties are not the key properties, the upper bound of the multiplicity of the dependent role must be *

失败的映射:

请求 - [0..1] - >响应

回应 - [1] - >请求

为什么这不起作用?我知道EF不太喜欢外键,但这看起来很简单。

1 个答案:

答案 0 :(得分:2)

如果有两个表,并且您想要建模场景:

  • 每个请求都有可选的响应
  • 每个回复都需要请求

您正在建模单一关系,您只需要FK作为响应,因为在这种情况下请求是关系的主要实体。如果你想模拟两个独立的关系,那么双方都需要FK。

要建立此关系,只需使用ResponseId实体中的Response作为RequestId Request实体中的{{1}}(EF在主键上建立一对一的关系,因为它目前不支持唯一约束。)