2011-12-12 101 views
4

有沒有辦法用Linq寫實體(或實體SQL,或方法語法,或任何其他方式,但我想用Linq實體來實現它):LINQ to Entities - DISTINCT在一列

SELECT DISTINCT Column1 
FROM Table1 

我使用實體框架4.當然,我不希望使用後的數據是從數據庫中提取,用於過濾數據中的不同方法。

感謝,帕維爾

+2

的'Distinct'方法實際上增加了'DISTINCT Column1'到您的查詢中使用此方法將產生 –

回答

8

使用類似

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

由於穆奈姆在他的評論中提到的,鮮明的()方法並添加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