You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在EF中使用Average与GroupBy?按天计算指定SId的Score平均值

问题分析与修正

你的代码存在两个核心问题:

  • Include方法用途错误:它是EF Core中用于关联加载导航属性的工具,不能用来执行Average这类聚合计算。
  • 分组后缺少正确的投影逻辑:GroupBy操作之后,需要通过Select来提取分组键(日期)和对应的聚合结果。

修正后的代码

var dailyAvgScores = await _context.transactions
    .Where(b => b.SId == request.Id)
    .GroupBy(a => a.RawDateTime.Date)
    .Select(g => new 
    {
        Date = g.Key,
        AverageScore = g.Average(v => v.Score)
    })
    .ToListAsync();

说明

  • 用Select替代错误的Include,将每个分组的日期(g.Key)和该组的Score平均值封装成匿名对象(你也可以替换为自定义的DTO类)。
  • 执行这段代码后,就能正确获取指定SId下,每日Score的平均值集合。

内容的提问来源于stack exchange,提问作者dave_bell

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 03:12:07