Вопрос

Я использую основу для подключения базы данных.

У меня таблица (давайте назовем его «Файл»), которая имеет несколько полей:

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» в этом случае вместо

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top