c# - 使用 linq 和实体框架核心 5 从数据库中的不连续数据创建具有连续日期的报告
问题描述
我需要从我的数据库中的一些数据构建一个报告。它是代表我们系统中每天收入的项目列表。我们的数据每小时存储一次,因此使用日期时间的日期部分分组。这里是查询:
dateDataQuery = query.GroupBy(o => new {o.Time.Month, o.Time.Year, o.Time.Day})
.OrderBy(o => o.Key.Year).ThenBy(o => o.Key.Month).ThenBy(o => o.Key.Day)
.Select(g => new StatData()
{
Day = g.Key.Day,
Month = g.Key.Month,
Income = g.Sum(o => o.Income),
});
这可以正常工作,但问题是如果我们有一天没有交易,那么这一天的数据库中不会有任何记录,因此这一天的 StatData 对象不会出现在结果中。
这是一个问题,因为这些数据将在我们前端的图表中表示,并且需要是连续的。我的意思是,一天决议中的每个日期都必须出现在结果中,至少收入为 0。
那么,是否有可能使用实体框架核心和 linq 来执行此操作,而无需检查所有返回的数据,并手动检查日期是否存在?
解决方案
推荐阅读
- vue.js - 如何比较两个 vuejs 计算属性的结果
- python-3.x - 带有 tkinter 的 Python 在同时移动多个画布对象时执行速度太慢
- iis-8 - IIS8 启用 32 位应用程序
- java - 为什么将首选大小设置为 Double.POSITIVE_INFINITY 或 Double.MAX_VALUE 在 JavaFX 中不起作用而 10000 起作用?
- python - 瓶服务器路由到多个 html 页面
- java - Java 中的 AWS Lambda 处理程序,该程序包不可用
- c++ - 在排除 C++ 的 switch case 中使用范围
- azure-maps - Azure 地图集群
- mysql - MySQL子查询为每个组选择第一行
- excel - 如何为映射到不同驱动器的两个人编写文件路径