如何使用实体框架的Datetime Groupby月

时间:2017-10-21 21:43:27

标签: c# asp.net entity-framework lambda webforms

我的代码在这里:

var query = context.Article.GroupBy(x=>x.CreateDate.Value.Month)

无效

例如

January 2017
February 2017
March 2017

1 个答案:

答案 0 :(得分:0)

您可以使用月份和年份按照您的收藏进行分组,然后循环浏览分组的项目。

var articlesGrouped = context.Article
                             .Where(g=>g.CreatedTime!=null)
                             .GroupBy(x => new { Month = x.CreatedTime.Value.Month,
                                                 Year = x.CreatedTime.Value.Year })
                             .ToList();

这将为您提供按月和年分组的文章。

月份值是数字。如果您想要相应的名称,可以使用DateTimeFormatInfo对象。

var dtfi = new DateTimeFormatInfo();
foreach (var groupedItem in postGrouped)
{
    var month = dtfi.GetAbbreviatedMonthName(groupedItem.Key.Month)
    var year = groupedItem.Key.Year;
    //now you can loop through item 
    foreach (var article in groupedItem)
    {
        var title = article.Title;
    }
}