我正在寻找一种组成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);