LINQ to Entities - DISTINCT для одного столбца - PullRequest
4 голосов
/ 12 декабря 2011

Есть ли способ написать следующий запрос с Linq to Entities (или Entity SQL, или Синтаксисом метода, или любым другим способом, но я бы хотел добиться этого с Linq to Entities):

SELECT DISTINCT Column1
FROM Table1

Я использую Entity Framework 4. Конечно, я не хочу использовать метод Distinct, который фильтрует данные после их извлечения из базы данных.

спасибо, Pawel

Ответы [ 2 ]

10 голосов
/ 12 декабря 2011

Используйте что-то вроде

db.Table1.Select(t => t.Column1).Distinct()

. Как отметил Муним в своем комментарии, метод Distinct () добавляет DISTINCT к запросу.Таким образом, полученный SQL-запрос будет

SELECT [Distinct1].[Column1] AS [Column1]
  FROM ( SELECT DISTINCT 
    [Extent1].[Column1] AS [Column1]
    FROM [dbo].[Table1] AS [Extent1]
  )  AS [Distinct1]
0 голосов
/ 08 мая 2015

Для отдельных по столбцу используйте это расширение:

public static IEnumerable<T> DistinctBy<T, TKey>(this IEnumerable<T> items, Func<T, TKey> property)
{
    return items.GroupBy(property).Select(x => x.First());
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...