Breeze版本:1.5.3
我正在经历类似于某些旧问题的问题,但似乎这个“错误”再次发生:
我有一个1-To-Many单向导航属性,但未填充。我检查了服务器的元数据和响应。我甚至调试了微风,节点(或rawEntity)似乎是完美的。
我试图追踪它并得出结论,它发生了,因为我的导航属性没有找到“反向” - 属性,并且mergeRelatedEntities-Function在不更新目标实体的情况下返回:
function mergeRelatedEntities(mc, navigationProperty, targetEntity, rawEntity) {
var relatedEntities = mergeRelatedEntitiesCore(mc, rawEntity, navigationProperty);
if (relatedEntities == null) return;
var inverseProperty = navigationProperty.inverse;
if (!inverseProperty) return;
var originalRelatedEntities = targetEntity.getProperty(navigationProperty.name);
originalRelatedEntities.wasLoaded = true;
relatedEntities.forEach(function (relatedEntity) {
if (typeof relatedEntity === 'function') {
mc.deferredFns.push(function () {
relatedEntity = relatedEntity();
updateRelatedEntityInCollection(relatedEntity, originalRelatedEntities, targetEntity, inverseProperty);
});
} else {
updateRelatedEntityInCollection(relatedEntity, originalRelatedEntities, targetEntity, inverseProperty);
}
});
}
旧帖子:
Non scalar navigation properties are not populating with "nodb" conception
和
Breeze (1.4.5) unidirectional one-to-many: navigation collection not populated
好的,我开始了解Ward对未映射属性的意义(通过查找2年前的类似问题:Handling calculated properties with breezejs and web api)
到目前为止我所拥有的:
function iUIConfigConstructorTool() {
this.ConfigToCurrentUSetting = null;
};
function iUIConfigConstructorAppl() {
this.ConfigToCurrentUSetting = null;
};
function iUIConfigConstructorWidget() {
this.ConfigToCurrentUSetting = null;
};
function iUIConfigInitializer(uiConfigObject) {
// initializing other properties
};
this.manager.metadataStore.registerEntityTypeCtor("Tool", iUIConfigConstructorTool, iUIConfigInitializer);
this.manager.metadataStore.registerEntityTypeCtor("Appl", iUIConfigConstructorAppl, iUIConfigInitializer);
this.manager.metadataStore.registerEntityTypeCtor("Widget", iUIConfigConstructorWidget, iUIConfigInitializer);
这就是我想要的。有没有办法在服务器的元模型上执行此操作?因为我在服务器上定义了我的计算属性,并且元模型由服务器提供,所以如果我添加新的Navigation-Property,我不想更改客户端实现。因此,我需要在元模型中使用类似旗帜的东西来告诉微风,这个属性需要在没有ForeignKeys等的情况下通过电线填充。
也许换句话说:我们正在服务器端进行“子查询”(例如,查找具有订单的客户,但只能查询特定日期),并将其交付给每个查询对象(在与客户的真实订单属性不同的属性中)。我们的问题是:我们如何解压缩这个子查询,因为元数据中没有直接连接,但我们需要连接逻辑。
答案 0 :(得分:0)
请通过以下方式更新您的问题:
您如何获取/创建元数据
两个端点的元数据(只有nav props,pk prop和fk props会做)
确切的查询表达式
当然,最受欢迎的是一名牧师。
如果我正确理解您的评论,您所使用的导航属性(属性)将由您(使用服务器提供的信息)维护,而不是由Breeze维护。
这促使我建议您将它们维护为 未映射的 属性,而不是映射的导航属性。这有意义吗?