0

我在一个项目中使用 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的一个错误吗?

提前致谢!

4

1 回答 1

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 和 products 都被正确检索。如果您可以提供重现问题的小解决方案,我们将能够进一步调查并找出问题所在。

于 2013-09-11T21:51:55.153 回答