c# - Entity Framework 是否支持父级引用 0..1 个子级,子级引用 1 个父级?

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

我有两张 table 。一个是Request,另一个是Response。每个请求都有一个对响应记录的可为空外键引用。

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

我正在尝试为此模型生成实体,但验证失败并出现错误:多重性在角色响应中无效[...]。由于依赖角色属性不是关键属性,因此依赖角色重数的上限必须为*

失败的映射:

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

响应 -[1]-> 请求

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

最佳答案

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

  • 每个请求都有可选的响应
  • 每个响应都有所需的请求

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

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

关于c# - Entity Framework 是否支持父级引用 0..1 个子级,子级引用 1 个父级?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11606104/

相关文章:

c# - 在 C# .NET 中运行 SSIS 包

c# - for 循环计数器变量作用域似乎具有双重人格?

c# - 使用 ASP TabPanel Onclick

c# - 使用证书运行 WCF 服务时失败

wcf - 调试联系本地托管 WCF 服务器的 Windows Phone 7 应用程序

SQL:如何更新多个字段,以便将空字段内容移动到逻辑上最后一列 - 丢失空白地址行

sql - SQL Server 中的 Oracle varchar2 等效项

c# - 结果导致任务死锁

android - 如何从 Android 中的 WCF 服务反序列化复杂的 JSON 对象?

sql - 查询以查明外键是否在数据库中的其他位置被引用