2010-07-07 74 views
0

我有以下數據結構(它是在專有CMS系統中將內容映射到頁面區域的僅附加表格)。如何通過實體框架中的最大日期實現組結果

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

我使用實體框架,並希望使用LINQ到實體來獲得這些記錄中,其中在了zoneid聚集到最近的日期列表。從本質上講,每個ZoneID應該只有一個結果,查詢應該在pageID上過濾。

在此先感謝您的幫助!

回答

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 
} 
+0

注意這一點,結果將是一個元素的列表清單。 – FDIM 2014-04-17 14:23:20

+0

四年後,我會以不同的方式解決這個問題。 – ctorx 2014-04-17 18:04:03