我正在寻找一种组成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属性。无论如何,在微风中实现这一目标?我知道没有groupBy功能,但是也许有另一种方法。

最佳答案

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

[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);

07-26 09:32