此问题也有类似问题: Breeze work-around for multi valued property queries
嗯,这适用于一对多。 即父母实体可能有一个孩子,而这个孩子又有很多孩子。
我的情况是:产品有很多单位,特定单位有很多条形码。
var predicateBarcode = Predicate.create('units.barcodes','any','barcode', 'eq', searchText());
var query = EntityQuery.from('Products')
.expand('units.barcodes')
// .take(10)
.where(predicateBarcode );
return manager.executeQuery(query)
.then(querySucceeded)
.fail(queryFailed);
执行查询会出错:
The parent value for a property access of a property 'barcodes' is not a single value. Property access can only be applied to a single value.
我已将谓词更改为:
var predicateBarcode = Predicate.create('units','any','barcodes','any','barcode', 'eq', searchText());
给出了另一个错误:
The Any/All nesting limit of '1' has been exceeded. 'MaxAnyAllExpressionDepth' can be configured on ODataQuerySettings or QueryableAttribute
这有什么办法吗? 感谢帮助。
答案 0 :(得分:3)
鉴于谓词:
var predicateBarcode = Predicate.create('units','any','barcodes','any','barcode', 'eq', searchText());
我已将MaxAnyAllExpressionDepth
属性添加到我的breeze控制器:
[BreezeController(MaxAnyAllExpressionDepth = 2)]
感谢@lnu ..