有没有办法对从 BreezeJS 中的服务下载的实体进行分组?
我找到了诸如“where”“select”“orderBy”之类的东西,但我缺少“groupBy”方法
你知道是否存在吗?或者是否有其他方法可以做到这一点?
有没有办法对从 BreezeJS 中的服务下载的实体进行分组?
我找到了诸如“where”“select”“orderBy”之类的东西,但我缺少“groupBy”方法
你知道是否存在吗?或者是否有其他方法可以做到这一点?
“GroupBy”不是 OData 查询标准的一部分,也不是 Breeze 支持的操作。
我可以想象这个操作的实用性......返回一个表示组并填充实体的数据结构。如果分组是可预测的,您可以创建一个控制器端点来为您执行分组并将该分组数据发送到客户端。Breeze 将收集隐藏在数据结构中的实体,您的查询结果将反映您委派给服务器的分组工作。
“分组依据”到底是什么意思?也许微风确实允许这样的事情,但不是我所知道的。
由于 Breeze 的目的是发送可观察的结果,因此 SQL 意义上的 group by 并没有多大意义。你必须自己做。例如,count(*) 怎么可能是 observable?
在我看来GroupBy
,一般意义上的 OData 几乎没有兴趣。它可以很容易地使用OrderBy
操作符来实现。
真正感兴趣的GroupBy
是执行聚合。而这个服务器端。
这个问题我思考了很久。我开发了产品 AdaptiveLINQ ( www.adaptivelinq.com ),它通过其(服务器端:用于 .Net 开发人员)扩展方法QueryByCube
允许聚合指定一个简单的Select
指令。
因此,人们可以轻松地构建一项服务,例如,返回每位客户的总销售额:
http://.../MyAnalysisService.svc/Sales?$select=Customer, Sales
或按客户和产品类别
http://.../MyAnalysisService.svc/Sales?$select=Customer, ProductCategory, Sales