使用System.Linq.Dynamic.Core GroupBy后Select报错的解决咨询
解决Dynamic LINQ GroupBy后Select的属性找不到问题
这个问题我之前也碰到过,其实是对Dynamic LINQ处理GroupBy后的结果结构理解有点偏差~
错误原因分析
当你调用GroupBy("Operation")之后,返回的查询结果类型是IQueryable<IGrouping<TKey, TElement>>,这里的IGrouping接口只有一个公开属性Key,它对应你分组时指定的Operation属性的值。你原来写的Operation.Key相当于在IGrouping对象上找Operation属性,这自然会报错,因为IGrouping根本没有这个属性。
正确的写法
你需要直接引用Key来获取分组的键值,然后给它指定别名Operation就可以了,修改后的代码如下:
masterService.Grid().GroupBy("Operation").Select("new(Key as Operation)")
拓展示例(可选)
如果之后你需要同时获取分组的其他统计信息,比如分组内的元素数量,也可以直接在Dynamic LINQ的Select表达式里调用聚合方法:
masterService.Grid().GroupBy("Operation").Select("new(Key as Operation, Count() as TotalCount)")
内容的提问来源于stack exchange,提问作者murat kurtun
相关产品推荐
相关产品推荐

