【问题标题】:Does Entity Framework support a parent referring to 0..1 children with a child referring to 1 parent?实体框架是否支持引用 0..1 个子项的父项和引用 1 个父项的子项?
【发布时间】:2012-07-23 15:56:06
【问题描述】:

我有两张桌子。一个是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 不太喜欢外键,但这似乎很简单。

【问题讨论】:

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


    【解决方案1】:

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

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

    您正在建模单个关系,并且您只需要 FK 作为响应,因为在这种情况下请求是关系的主要实体。如果要对两个独立的关系建模,则需要双方都进行 FK。

    要建立这种关系,只需将Response 实体中的ResponseId 用作Request 实体中的RequestId 的FK(EF 在主键上建立一对一关系,因为它不支持在时刻)。

    【讨论】:

    • 看来我只是想多了。这非常明显并解决了问题。谢谢:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-04
    • 2014-01-18
    相关资源
    最近更新 更多