我正在寻找一种构建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
功能,但也许还有替代路线。
答案 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);