Breeze js expand和inlineCount

时间:2013-09-11 16:09:27

标签: odata breeze

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

提前致谢!

1 个答案:

答案 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和产品。 如果您可以提供一个重现问题的小解决方案,我们将能够进一步调查并找出问题所在。

相关问题