在Breeze.js中计数

本文关键字:js Breeze | 更新日期: 2023-09-27 18:12:09

我有一个返回项目计数的复杂查询。如果我在客户端上运行查询,它是否总是返回对象,或者是否有一种方法只返回项目计数而不发送有效载荷中的对象数组?我试着做一些像

var query = breeze.EntityQuery.from('Items').inlineCount(true);

但是这仍然会拉下所有的记录。有解决方案吗?

在Breeze.js中计数

我不知道这是否完全回答了你的问题,但你需要查询记录,以便知道有多少(据我所知,可能有一种更有效的方法将Breeze直接绑定到我头上的SQL命令中),所以你可以做一些像-

var query = breeze.EntityQuery.from('Items')
    .take(0)
    .inlineCount(true);

编辑答案-这将不返回任何对象,只获取计数

已经提供的inlineCount答案绝对正确。

另一种选择是计算服务器上的计数并只发送"摘要"。例如,这个服务器端控制器方法将向客户端返回一个包含两个元素对象的数组:

  [HttpGet]
  public Object CustomerCountsByCountry() {
    return ContextProvider.Context.Customers.GroupBy(c => c.Country).Select(g => new {g.Key, Count = g.Count()});
  }

这将通过

调用
  EntityQuery.from("CustomerCountsByCountry")
     .using(myEntityManager).execute()
     .then(function(data) {
     var results = data.results;
     results.forEach(function(r) {
       var country = r.Key;
       var count = r.Count
     });
  });

var query = breeze.EntityQuery.from('Items')(0),.inlineCount(真正);