我有两张 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/