是否有某种方法可以在BreezeJS中对从服务中下载的实体进行分组?
我找到了“where”“select”“orderBy”之类的东西,但我缺少“groupBy”方法
你知道是否存在吗?或者如果有其他方法可以做到这一点?
答案 0 :(得分:3)
“GroupBy”不是OData查询标准的一部分,也不是Breeze支持的操作。
我可以想象这个操作的实用程序...返回表示组的数据结构并填充实体。如果分组是可预测的,您可以创建一个控制器端点来为您执行分组,并将该分组数据发送到客户端。 Breeze将收集隐藏在数据结构中的实体,您的查询结果将反映您委派给服务器的分组工作。
答案 1 :(得分:0)
“分组依据”究竟是什么意思? 也许Breeze允许这样的东西,但不是我所知道的。
由于Breeze的观点是发送可观察的结果,所以在SQL意义上的一个组,没有多大意义。你必须自己做。例如,count(*)如何成为可观察的?
答案 2 :(得分:0)
在我看来,一般意义上的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