Вернуть всю строку, имеющую максимальное значение
-
01-10-2019 - |
Вопрос
Я использую основу для подключения базы данных.
У меня таблица (давайте назовем его «Файл»), которая имеет несколько полей:
ID, версия, XYZ Primarky Key основан на ID и версии. Таким образом, я могу иметь несколько строк с тем же идентификатором, но другой версией (и INSTSLY).
Вопрос в том:
Как я могу, с лямбдом выражением, спросите мою структуру сущности, чтобы вернуть мне всю последнюю версию «файла».
Пример: Datas:
ID;Version;Other
1;1;YX
1;2;YZ
2;1;AH
2;2;BH
2;5;CA
1;3;AAA
Результат:
1;3;AAA
2;5;CA
Спасибо!
! Цель состоит в том, что база данных не нужно возвращать все строки, и называется только один раз, поэтому забывайте, как Getallrows и прочитайте всю коллекцию и сохранить только новейшие, или получить список всех возможных идентификаторов и получить последний Версия Foreach в другом запросе. Спасибо!
Решение
Вы можете использовать следующие запросы LinqtoEntites для этого:
var result = from f in myEntities.Files
group f by f.ID into g
select g.OrderByDescending(f => f.Version).FirstOrDefault();
Возможно, это будет иметь больше смысла использовать First
вместо FirstOrDefault
Но тогда вы получаете UnsupportedException
:
Метод «сначала» может использоваться только в качестве окончательного операции запроса. Рассмотреть возможность использования метода «firstordefault» в этом случае вместо