我在项目中使用Breeze js ver 1.4.1并且我有这个查询:
var query = breeze
.EntityQuery.from("AnalyzeObjects")
.expand("GatherTasks, GatherTasks.ObjectFactory")
.where(predicate)
.orderBy("Name")
.using(manager)
.execute();
它工作正常,但由于我想添加服务器端分页,我添加了以下内容:
var query = breeze
.EntityQuery.from("AnalyzeObjects")
.expand("GatherTasks, GatherTasks.ObjectFactory")
.where(predicate)
.inlineCount()
.orderBy("Name")
.take(_take)
.skip(_skip)
.using(manager)
.execute();
问题是,查询运行正常,正在返回inlineCount属性,但expand子句停止工作。如果我运行第一个查询,则返回“GatherTasks”导航属性,但是如果设置了inlineCount属性,则不会。 我正在使用在WCF数据服务中实现的OData端点。 有谁知道这种行为的原因?这是一个关于微风js的错误吗?
提前致谢!
答案 0 :(得分:0)
我无法重现这个问题。
在我的测试中:
test("expand not working with paging", function () {
var manager = newEm();
var predicate = Predicate.create("orderID", "<", 10500);
stop();
var query = new breeze.EntityQuery()
.from("Orders")
.expand("orderDetails, orderDetails.product")
.where(predicate)
.inlineCount()
.orderBy("orderDate")
.take(2)
.skip(1)
.using(manager)
.execute()
.then(function (data) {
var localQuery = breeze.EntityQuery
.from('OrderDetails');
var orderDetails = manager.executeQueryLocally(localQuery);
ok(orderDetails.length > 0, "should not be empty");
var localQuery2 = breeze.EntityQuery
.from('Products');
var products = manager.executeQueryLocally(localQuery2);
ok(products.length > 0, "should not be empty");
}).fail(testFns.handleFail).fin(start);
});
正确检索orderDetails和产品。 如果您可以提供一个重现问题的小解决方案,我们将能够进一步调查并找出问题所在。