有没有办法用Linq to Entities(或实体SQL,或方法语法,或任何其他方式)编写以下查询,但我想用Linq to Entities实现它:
SELECT DISTINCT Column1
FROM Table1
我正在使用Entity Framework 4.当然,我不想使用在数据库中提取数据后过滤数据的Distinct方法。
感谢,帕维尔
答案 0 :(得分:10)
使用类似
的内容db.Table1.Select(t => t.Column1).Distinct()
正如Munim在评论中提到的,Distinct()方法确实将DISTINCT添加到查询中。因此产生的SQL查询将是
SELECT [Distinct1].[Column1] AS [Column1]
FROM ( SELECT DISTINCT
[Extent1].[Column1] AS [Column1]
FROM [dbo].[Table1] AS [Extent1]
) AS [Distinct1]
答案 1 :(得分:0)
对于distinct by列,请使用此扩展名:
public static IEnumerable<T> DistinctBy<T, TKey>(this IEnumerable<T> items, Func<T, TKey> property)
{
return items.GroupBy(property).Select(x => x.First());
}