以下LINQ查询获取前12个月的数据并按月对其进行聚合。在LINQ查询中按时间顺序对分组查询进行排序
我想按时间顺序排序,当前月份是查询中最近的月份。
达到此目的的最佳方法是什么?
public IEnumerable<EventMonthlySummaryMonthly> GetLastYearEventGrid()
{
DateTime currentDate = DateTime.Now.AddYears(-1).AddMilliseconds(1);
var summary = from p in db.Events
where (p.StartDate > currentDate) && (p.StartDate != null)
let k = new
{
Month = p.StartDate.Month
}
group p by k into t
select new EventMonthlySummaryMonthly
{
Month = t.Key.Month,
EventsWhatsOn = t.Count(p => p.EventTypeId == 1),
EventsRegular = t.Count(p => p.EventTypeId == 2),
EventsExhibitions = t.Count(p => p.EventTypeId == 3),
EventsAll = t.Count(p => p.EventTypeId != null),
};
return summary;
}
您可以使用排序描述符来排序汇总ListM,但您希望它在LINQ中进行排序。 – 2012-02-11 13:39:23