【发布时间】:2009-09-23 21:35:14
【问题描述】:
我有一个 Linq 查询,它基本上计算在特定日期创建了多少条目,这是通过按年、月、日分组来完成的。问题是因为有些日子没有任何条目,我需要用 0 计数的条目来回填那些丢失的“日历日”。 我的猜测是,这可能可以通过 Union 或其他东西来完成,或者甚至可以通过一些简单的 for 循环来处理查询后的记录。
这里是查询:
from l in context.LoginToken
where l.CreatedOn >= start && l.CreatedOn <= finish
group l by
new{l.CreatedOn.Year, l.CreatedOn.Month, l.CreatedOn.Day} into groups
orderby groups.Key.Year , groups.Key.Month , groups.Key.Day
select new StatsDateWithCount {
Count = groups.Count(),
Year = groups.Key.Year,
Month = groups.Key.Month,
Day = groups.Key.Day
}));
如果我有 2009 年 12 月 1 日至 12 月 4 日的数据(简化):
12/1/2009 20
12/2/2009 15
12/4/2009 16
我想要通过代码添加 12/3/2009 0 的条目。
我知道通常这应该在数据库中使用非规范化表完成,您可以使用数据填充该表或加入日历表,但 我的问题是如何在代码中完成此操作?
可以在 Linq 中完成吗?是否应该在 Linq 中完成?
【问题讨论】: