求问linq分组统计求和报错!请问分组后怎么再多条件查询和分页

varquery=(fromoincontext.spg_daily_yieldwhereo.date==param.dategroupobynew{o.name,o.e... var query = (from o in context.spg_daily_yield
where o.date == param.date
group o by new { o.name, o.eamil,o.sex}
into g
select new UserEntity()
{
name= g.Select(k => k.name).First(),
eamil= g.Select(k => k.eamil).First(),
sex= g.Select(k => k.sex).First(),
number= g.Sum(k => k.number),
});
return query.ToList();
以上分组报错:
The method 'First' can only be used as a final query operation. Consider using the method 'FirstOrDefault' in this instance instead.
方法的“第一次”只能作为最后的查询操作。考虑使用方法“FirstOrDefault”在这个实例中。

附带问题
如果上面的分组正确了,我可以这样进行二次筛选吗?
if ((!string.IsNullOrEmpty(param.name)))
{
query = query.Where(ct => ct.name.Contains(param.name));
}
如果上面的分组正确了我还可以直接这样分页吗?

query.Skip((param.PageId - 1) * param.PageCount).Take(param.PageCount).ToList();
展开
 我来答
百度网友3831f2b
2014-06-27 · TA获得超过162个赞
知道小有建树答主
回答量:143
采纳率:100%
帮助的人:94万
展开全部
First如果为空,是返回Null值得,因为你要select new UserEntity出来,所以你应该用FirstOrDefault,即便为空,也会返回默认值。

至于附带问题返御:
可以进行二次筛选。
可以进行分页蚂旦。
附带问题之所以可以进行的原因就是,你返回的为漏物岩IEnumable类型,这个类型支持linq扩展。
追问

以上分组正确,筛选争取!但是分页报错:

我排过序,在where条件下面orderby的,而且query经过分组、筛选后是IQueryable类型

追答
query.orderby(x=>x.id).skip***
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式