Linq to Entities 3.5, где самая последняя дата - PullRequest
1 голос
/ 27 августа 2010

У меня есть таблица, и для примера скажем, что она имеет три столбца: Имя, Дата добавления, Примечание.В этой таблице будет несколько записей с одним и тем же именем.Мне нужно предложение linq where, которое даст мне набор результатов с самой последней записью для каждого имени.

Так что, если бы у меня была следующая информация:

Name, DateAdded, Note
Alpha, 1/1/2010, note one
Alpha, 1/2/2010, note two
Alpha, 1/3/2010, note three
Beta, 1/4/2010, note four
Beta, 1/5/2010, note five

Я бы ожидал получитьследующие результаты:

Name, DateAdded, Note
Alpha, 1/3/2010, note three
Beta, 1/5/2010, note five

При реальном использовании это будет опция поиска, поэтому мне нужно, чтобы она была предложением .Where, если возможно, я могу добавить в коллекцию IQueryable.

1 Ответ

0 голосов
/ 28 августа 2010
from row in rows
group row by row.Name into grouping
from g in grouping
where g.DateAdded == grouping.Max(x => x.DateAdded)
select g;

Если в некоторой группе более одной строки с максимальным значением DateAdded, это возвращает все такие строки.

Вам не нужен только один оператор Where.Если rows является IQueryable, то результат этого запроса тоже, так что вы можете использовать его как часть цепочки.Но я понятия не имею, насколько хорошо этот запрос переводится в SQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...