我有一个Linq查询,基本上是通过按照年、月、日进行分组来计算特定日期创建了多少条目。问题在于,由于某些日期没有任何条目,因此我需要用0计数的条目填充这些缺失的“日历天”。
我猜想这可能可以通过Union或其他方式完成,或者甚至可以使用一些简单的for循环来处理查询后的记录。
以下是查询代码:
如果我有数据为2009年12月1日至12月4日,如下(简化):
我猜想这可能可以通过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完成?