无法通过ODATA V4文档中的引用找到组。当我们通过URL进行分组查询时,它仅返回键,而不是实际的分组结果。
关于扩展性在Asp.Net ODATA中使用Group by的任何参考ODATA Web API的要点。我们需要全面掌握如何ODATA查询被解析并转换为LILNQ以进行实体查询。
我正在讲intercepting ODATA查询并进行手动自定义,例如LINQ到实体
我正在尝试对区分大小写进行类似的扩展。OData Case In-Sensitive filtering in Web API?
尝试从SQL角度进行处理:
这是我们的分组网格在有角度的Telerik剑道中的工作方式(它们具有很好的toOdataString impl。我也对此进行了扩展:https://github.com/telerik/kendo-angular/issues/2102)。
此方法可确保网格中的组数量固定(总组或第一级组)。
PRO:您看到所有组(或至少N个)
CONS:如果展开一个组,则可能会携带太多物品;需要大量额外的代码和带有特殊odata查询的额外调用;
请参阅:http://www.reflection.sk/#portfolios,检查屏幕快照:通用计划服务(UPS)软件包(.NET和Angular与KendoUI)
如果从UI角度看:
然后,分组不过是对分组字段具有优先级排序的数据列表。这是默认的剑道分组网格方法。因此,他们只是对数据进行排序,获取其页面大小,然后添加分组的UX项目(网格中的虚拟项目)。
此方法可确保您在网格中有固定的项目,但是当您折叠所有项目时,您可能只有1个或什至pageSize个组计数(取决于每个组中是否有/有多少个项目)。在这里查看:https://www.telerik.com/kendo-angular-ui/components/grid/grouping/-实际上,您需要关闭分页才能看到区别。
对于不超过固定数量的商品,这种方法是最快的。每页只有一个呼叫,但是无法预先知道组的数量(如果将它们折叠,则可能只有1个甚至N个,其中N是页面大小)。
关于区分大小写:
还有一个注意事项:通过分组,我无法使用odata执行类似$ groupby(tolower(columnname))的操作,所以...