2011-10-05 17 views
0

IdがPKで、他のフィールドが一意ではないため、同じUserNameを持つ行が複数回繰り返されるため、次のプロパティ[ID、UserName、ProductName]を持つエンティティがあるとします。LINQを使用して行を結合する方法は?

ビューの1つでは、ユニークな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

関連する問題