2011-10-05 45 views
0

假設我有一個具有以下屬性[Id,UserName,ProductName]的實體,其中Id是PK,其他字段不唯一,因此具有相同UserName的行重複多次。如何使用LINQ組合行?

對於我需要獲取具有唯一UserName的集合的其中一個視圖,其他字段將使用字符串連接或類似的方法組合在一起。

如果我有

[0, John, Alpha] 
[1, Mary, Beta] 
[2, John, Gamma] 

我需要一個查詢,會得到我的集合像

[John, Alpha Gamma] 
[Mary, Beta] 

而且這將是真棒,如果一切可以在數據庫方面沒有加載完成實體。

回答

2

您正在尋找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)); 
} 
+1

比這沒有得到任何簡單呃... – Blindy