Breeze 1.4.6 - 在分页后应用投影查询的inlinecount

时间:2013-12-04 11:17:14

标签: breeze

升级到面向Web API 2的breeze 1.4.6之后,我相信在分页之后正在应用投影查询的inlinecount。

例如,如果我指定take(5),那么 inlinecount将返回5,即使过滤器匹配说100条记录

您能否确认这是breeze 1.4.6的问题?

查看QueryHelper中的代码,看起来只有在修改odata查询以支持“选择”“嵌套”属性时才会发生这种情况。

我能够在失败的单元测试中重现这个问题:

/*********************************************************
* inlineCount of projected paged products
*********************************************************/
test("inlineCount of projected paged products", 2, function () {

    // Filtered query
    var productQuery = EntityQuery.from("Products")
        .where("ProductName", "startsWith", "C");

    // Paging of that filtered query ... with inlineCount
    var pagedQuery = productQuery
        .select("ProductName, Category.CategoryName")
        .orderBy("ProductName")
        .skip(5)
        .take(5)
        .inlineCount();

    var productCount, pagedCount, inlineCount;
    var em = newEm();
    stop(); // going async

    // run both queries in parallel
    var promiseProduct =
        em.executeQuery(productQuery)
            .then(function (data) {
                productCount = data.results.length;
            });

    var promisePaged =
        em.executeQuery(pagedQuery)
            .then(function (data) {
                pagedCount = data.results.length;
                inlineCount = data.inlineCount;
            });

    Q.all([promiseProduct, promisePaged])
        .then(function () {
            ok(inlineCount,
                "'data' from paged query should have 'inlineCount'");
            equal(inlineCount, productCount,
                "'inlineCount' should equal product count");
        })
        .fail(handleFail)
        .fin(start);
});

非常欢迎修复: - )

2 个答案:

答案 0 :(得分:0)

不确定您要找的是什么修复程序。从Breeze docs(我添加了突出显示) -

  

inlineCount 整数 -   仅当“inlineCount(true)”应用于查询时才可用。返回在应用任何skip或take运算符之前查询返回的项目数,但在任何过滤器之后应用谓词

答案 1 :(得分:0)

更新

这已在Breeze 1.4.7版本中修复,现已发布

上一篇文章

这是Breeze 1.4.6中涉及select和inlinecount的错误。它已经在GitHub的源代码和dll中得到修复。 (你可以继续直接拉dll)。这个修复程序也将在下周的某个时间发布在1.4.7版本中。