Как достичь групповых результатов по максимальной дате в Entity Framework - PullRequest
0 голосов
/ 07 июля 2010

У меня следующая структура данных (это таблица только для добавления для отображения контента в зону страницы в нашей собственной системе CMS).

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

Я использую Entity Framework и хочу использовать LINQ to Entities, чтобы получить список этих записей, в которых ZoneID агрегирован до самой последней даты. По сути, для каждого ZoneID должен быть только один результат, и запрос должен фильтроваться по pageID.

Заранее спасибо за помощь!

1 Ответ

2 голосов
/ 07 июля 2010

Нашел свой ответ ...

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  
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...