2011-12-12 4 views
4

엔티티 (또는 엔티티 SQL 또는 메서드 구문 또는 다른 방법으로 Linq과 함께 다음 쿼리를 작성하는 방법이 있습니까?하지만 Linq에서 엔티티를 사용하여 구현하려고합니다). 내가 엔티티 프레임 워크 4를 사용하고엔티티에 LINQ - 하나의 열에 DISTINCT

SELECT DISTINCT Column1 
FROM Table1 

물론 나는 데이터가 데이터베이스에서 가져온 후 데이터를 필터링 구별 방법을 사용하지 않습니다. Munim 그의 주석에서 언급 한 바와 같이

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

같은

덕분에, 파블

+2

은'Distinct' 방법은 실제로 쿼리에 DISTINCT Column1' 것이 방법을 사용하여 * –

답변

8

사용 무언가는 고유() 메소드는 쿼리에 DISTINCT를 추가 않습니다. 그래서 결과 SQL 쿼리는 열을 기준으로 구별를 들어

SELECT [Distinct1].[Column1] AS [Column1] 
    FROM (SELECT DISTINCT 
    [Extent1].[Column1] AS [Column1] 
    FROM [dbo].[Table1] AS [Extent1] 
) AS [Distinct1] 
0

될 것입니다,이 확장을 사용

public static IEnumerable<T> DistinctBy<T, TKey>(this IEnumerable<T> items, Func<T, TKey> property) 
{ 
    return items.GroupBy(property).Select(x => x.First()); 
} 
+1

참고 생성 된'추가 명령문이 더 이상 IQueryable 상태가 아님을 의미합니다. – JARRRRG