郑重申明:本文未经许可,禁止任何形式转载
问题描述
在SQL
语句中,我们查询按某个字段去重的SQL
语句用到的SQL
关键字是DISTINCT
,可能的去重查询语句可能为这样:
SELECT DISTINCT NAME FROM TestAddresses
那么,在.NET/C#的应用程序编程开发中,如何使用Entity Framework
实现以上SQL
语句相同的按某个字段去重的查询呢?
方案一
使用lambda
表达式的Distinct()
方法,如下:
var result = EFContext.TestAddresses.Select(m => m.Name).Distinct();
方案二
使用linq
查询后,使用lambda
表达式的Distinct()
方法,如下:
var results = (from ta in context.TestAddresses
select ta.Name).Distinct();
results
返回的是一个IEnumerable<string>
方案三
不使用Distinct()
方法,而使用GroupBy()
分组方法,如下:
var result = EFContext.TestAddresses
.GroupBy(ta => ta.Name)
.Select(ta => ta.Key);