lambda如何写groupby

立早家饰 2019-12-11 05:46:42
tSalesr表有date字段和amount字段,其中date字段是年月日时分秒,我想按日期分组合计amount,同一天合计一个值

var sum = _dbContext.tSales.Where(a => a.date.Value >= dt1 && a.date.Value <= dt2)
.GroupBy(a => a.date.Value)
.Select(a => new {
sum_amount = a.Sum(b => b.amount) }).ToList()

但这样的代码得到的是按年月日时分秒分组,怎样可以按天分组?
...全文
251 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
正怒月神 2019-12-12
  • 打赏
  • 举报
回复
引用 3 楼 立早家饰 的回复:
[quote=引用 1 楼 正怒月神 的回复:] .GroupBy(a => a.date.day)
我改成 .GroupBy(a => a.date.Value.Date) 错误如下: LINQ to Entities 不支持指定的类型成员“Date”。只支持初始值设定项、实体成员和实体导航属性 后来改成 .GroupBy(a => DbFunctions.TruncateTime(a.date.Value)) 就可以了!![/quote] 哦,这个是因为linq 转换 sql时 不认识你的方法。 需要DbFunctions.TruncateTime来帮助转换成你要的sql
立早家饰 2019-12-11
  • 打赏
  • 举报
回复
引用 1 楼 正怒月神 的回复:
.GroupBy(a => a.date.day)



我改成
.GroupBy(a => a.date.Value.Date)
错误如下:
LINQ to Entities 不支持指定的类型成员“Date”。只支持初始值设定项、实体成员和实体导航属性

后来改成
.GroupBy(a => DbFunctions.TruncateTime(a.date.Value))
就可以了!!
正怒月神 2019-12-11
  • 打赏
  • 举报
回复
大概就是这个意思吧。
正怒月神 2019-12-11
  • 打赏
  • 举报
回复
.GroupBy(a => a.date.day)

8,497

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 LINQ
社区管理员
  • LINQ
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧