在BreezeJs

时间:2015-07-02 20:27:51

标签: javascript entity-framework breeze

我正在寻找一种构建Breeze实体查询的方法,该查询允许我采用由特定属性区分的前10个实体。

这个LINQ片段大致描述了我尝试做的事情:

repo.Foos()
    .GroupBy(foo => foo.Bar)
    .OrderByDescending(fooGroup => fooGroup.Max(foo => foo.Baz))
    .Select(fooGroup => fooGroup.First())
    .Take(10);

我希望获得前10个Foo实体,这些实体具有由第三个Baz属性排序的不同Bar属性。无论如何在Breeze中实现这一目标?我知道没有groupBy功能,但也许还有替代路线。

1 个答案:

答案 0 :(得分:1)

您可以在服务器上创建一个执行所需查询的端点:

[HttpGet]
public IQueryable<Foo> TopTenFoos()
{
    return repo.Foos()
        .GroupBy(foo => foo.Bar)
        .OrderByDescending(fooGroup => fooGroup.Max(foo => foo.Baz))
        .Select(fooGroup => fooGroup.First())
}

然后用微风称呼它,例如

breeze.EntityQuery.from('TopTenFoos').toType('Foo').take(10);