LINQ C#中GroupBy添加Where子句后无结果的问题排查
问题排查与解决
你的查询返回空结果,核心问题出在Where条件里的**tip=="receipts"**这部分——你没有引用实体对象i的tip字段,而是直接用了一个可能未定义或值不对的变量tip,导致筛选条件完全不匹配数据库中的记录。
修正后的代码如下:
var centralizator_rc = db.register_operation .Where(i => i.data.Day == 19 && i.data.Month == 9 && i.tip == "receipts") .GroupBy(i => i.id_cont_sintetic) .Select(g => new { id_cont_sintetic = g.Key, total_receipts = g.Sum(i => i.suma), }).ToList();
另外补充两个潜在排查方向:
- 时区/时间格式问题:如果数据库
data字段带时区或存储UTC时间,直接取Day和Month可能和本地时间不匹配,可先转换为统一时区再筛选,比如i.data.ToLocalTime().Day(根据实际场景调整)。 - 字符串大小写问题:若数据库字符串比较区分大小写,要确保
"receipts"和库中存储的大小写完全一致,或改用不区分大小写的比较:i.tip.Equals("receipts", StringComparison.OrdinalIgnoreCase)。
内容的提问来源于stack exchange,提问作者ivf1971
相关产品推荐
相关产品推荐

