首先,我真的非常感谢开发者...... Breeze绝对是太棒了,我无法感谢您的辛勤工作!尽管[BreezeQueryable(MaxExpansionDepth = 100)],深度展开无法正常工作
我一直在使用Breeze和EF(最新的Breeze,最新的EF)一段时间,并且在一些数据库更改后,我现在被迫查询第四层对象...起初,我碰到MaxExpansionDepth已达到的错误,但根据SO上的几个问题/答案,我找到[BreezeQueryable(MaxExpansionDepth = x)]属性。我已经将该属性应用于控制器上的相关查询功能,从而消除了错误......但是,第四级的数据仍然没有填写。
我已经用特定的查询(基于4rth级别数据的关键字)成功检索了有问题的数据,并且在服务器端玩时一切正常......关系正常工作等等......麻烦查询如下:
function getPatient(patKey) {
var query = breeze.EntityQuery
.from("Patients")
.where("Key", "==", patKey)
.expand("..., ScanDates.Printouts.BMDSites, ...");
return app.dataservice.manager.executeQuery(query);
}
顺便说一句 - 这是所有的单一病人,所以真的没有那么多的数据 - 它只是分隔很多!
如果有人有任何想法,我会非常感激!
干杯, 布拉德
PS:很显然,我并不需要一个 “MaxExpansionDepth = 100”,但我也试图与低值(4,5等)
编辑:感谢Dominictus,我现在意识到真正的问题并不在于查询的深度 - BMDSites在响应中回来,但无论扩展深度如何,都不实现实体。如果我只是为他们查询(即BMDSites的PrintoutKey = x),他们会实现物化......但是,这又会导致10或15次到达服务器。我仍然很想知道如何一次搞定所有东西,或者只是了解为什么这些东西不会实现扩张!
编辑2:它只是发生在我身上的打印输出类是基类TPH继承层次的...在其他一些问题,环顾四周,我怀疑这是有可能的来源问题。
谢谢...还没加载,但它确实让我想直接检查响应 - 数据存在于对查询的响应中(使用您在操作中的.Include建议或原始扩展查询)......它只是没有物化通过微风进入物体!?对不起,如果我以前不清楚 - 客户端或服务器上没有显示错误。 – bparcels