如何使用LINQ组合行?
假设我有一个具有以下属性的实体[Id,UserName,ProductName],其中Id是PK,其他字段不是唯一的,因此具有相同用户名的行重复多次 对于其中一个视图,我需要获得一个具有唯一用户名的集合,其他字段将使用字符串连接或类似的方式组合在一起 如果我有如何使用LINQ组合行?,linq,entity-framework,linq-to-entities,Linq,Entity Framework,Linq To Entities,假设我有一个具有以下属性的实体[Id,UserName,ProductName],其中Id是PK,其他字段不是唯一的,因此具有相同用户名的行重复多次 对于其中一个视图,我需要获得一个具有唯一用户名的集合,其他字段将使用字符串连接或类似的方式组合在一起 如果我有 [0, John, Alpha] [1, Mary, Beta] [2, John, Gamma] 我需要一个查询,可以得到一个像 [John, Alpha Gamma] [Mary, Beta] 如果所有这些都可以在数据库端完成,而
[0, John, Alpha]
[1, Mary, Beta]
[2, John, Gamma]
我需要一个查询,可以得到一个像
[John, Alpha Gamma]
[Mary, Beta]
如果所有这些都可以在数据库端完成,而无需加载实体,那就太棒了。您正在寻找
GroupBy()
:
var results = context.MyEntities.GroupBy( x => x.UserName);
foreach (var item in results)
{
Console.WriteLine("{0} : {1}", item.Key, string.Join(",", item.Select( x=> x.ProductName));
}