根据我在数据库表中提供的以下信息:
Col 1, Col2, Col3
1 , x , G
1 , y , H
2 , z , J
2 , a , K
2 , a , K
3 , b , E
我可以在Linq中做什么(因为我正在使用实体框架)来获得以下内容:
1 , x , G
1 , y , H
2 , z , J
2 , a , K
3 , b , E
你明白了,我可以在SQL中完成以下任务:
Select Col 1, Col 2, Col 3
from Table
group by Col 1, Col 2, Col 3
不知道如何在代码中执行此操作,因为我只能找到一种方法在一列上执行不同的操作。
答案 0 :(得分:2)
试试这个:
var Result = Context.Table.Select(C =>
new {
Col1 = C.Col1,
Col2 = C.Col2,
Col3 = C.Col3 }).Distinct();
或者替代:
var Result = Context.Table.GroupBy(G=> new { G.Col1, G.Col2, G.Col3 })
.Select(C => new {
Col1 = C.Key.Col1,
Col2 = C.Key.Col2,
Col3 = C.Key.Col3
});
答案 1 :(得分:2)
您还可以在linq中的多个字段中使用group by:
myList.GroupBy(x=>new {x.Col1,x.Col2,x.Col3}).Select(x=>x.First()).ToList();
答案 2 :(得分:1)
如果表中只有这三列,那很简单。
var result = Context.Table.Distinct();
这将返回您想要的结果。
如果您有更多列,那么您可以尝试在其答案中说明@Saeed Amiri
。
@Kundan Singh Chouhan's
替代方法将为您提供完全相同的SQL查询,您在问题中说明了