Агрегировать в где пункт LINQ - PullRequest
1 голос
/ 19 января 2010

Я пытаюсь написать оператор LINQ, который выбирает только строки в таблице с самым последним состоянием.Например, если бы у меня была таблица со столбцами RunDate (datetime) и Value (десятичная), один из способов выполнить это через sql мог бы выглядеть так:

SELECT Value
FROM Table
WHERE RunDate = (SELECT MAX(RunDate) FROM Table)

Есть ли способ сделать это в LINQ?Спасибо

Ответы [ 2 ]

3 голосов
/ 19 января 2010

Если вы хотите строки:

var rows = Table.Where(row => row.RunDate == Table.Max(r => r.RunDate));

Если вы просто хотите значения:

var values = Table.Where(row => row.RunDate == Table.Max(r => r.RunDate))
                  .Select(row => row.Value);
0 голосов
/ 19 января 2010
Table.OrderByDescending(row=>row.RunDate).Take(1); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...