Breeze返回元数据中的导航属性,但不返回实体上的导航属性

时间:2013-06-17 22:54:12

标签: entity-framework breeze

此问题已完全编辑,以便在进一步调查后实际概述根本问题。

我遇到问题,我的客户端元数据上没有出现导航属性。通过更深入地检查breeze客户端代码,我发现parseCsdlNavProperty(第6181行)中的以下代码导致所有我的集合导航属性被忽略:

var constraint = association.referentialConstraint;
if (!constraint) {
    // TODO: Revisit this later - right now we just ignore many-many and assocs with missing constraints.
    return;
    // Think about adding this back later.
    //if (association.end[0].multiplicity == "*" && association.end[1].multiplicity == "*") {
    //    // many to many relation
    //    ???
    //} else {
    //    throw new Error("Foreign Key Associations must be turned on for this model");
    //}
}

属性referentialConstraint未定义,这会导致微风忽略我的相关entites。问题是我不确定a)为什么这是空的,b)这是做什么的,c)为什么breeze似乎讨厌这个,当实体框架似乎把事情映射得很好,d)如何解决它。

所以我删除了我的整个元数据和模型示例,因为它只是太多的信息。如果需要信息,请告诉我,我会添加。

希望这会使问题更具体,更容易破译。

感谢。

1 个答案:

答案 0 :(得分:2)

如果实体框架认为您没有公开外键,那么您在模型中缺少参照约束的唯一原因。见Foreign keys in the Entity Framework

Breeze需要外键才能执行自动对象链接逻辑。

这里也有描述:Breeze navigation properties