如何在实体框架中按最大日期实现组结果

时间:2010-07-07 18:03:32

标签: c# entity-framework

我有以下数据结构(它是一个仅附加表,用于将内容映射到我们专有CMS系统中的页面区域)。

  - RowID INT IDENTITY
  - PageID INT FK
  - ZoneID INT
  - ContentID FK
  - DateAdded DATETIME

我正在使用Entity Framework,并希望使用LINQ to Entities获取这些记录的列表,其中ZoneID汇总到最近的日期。实质上,每个ZoneID应该只有一个结果,查询应该在pageID上过滤。

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

找到我自己的答案......

var query = from zone in 
            this.Context.Zones
            where zone.PageID == pageID
            group zone by new { zone.PageID, zone.ZoneID } into zoneGroup
            let maxDate = zoneGroup.Max(x => x.DateCreated)
            select zoneGroup.Where(x => x.DateCreated== maxDate);


foreach (var result in query)
{
     // ... do something  
}