10

私は2つのテーブルを持っています

TableA
aId
aValue

TableB
bId
aId
bValue

これらの 2 つのテーブルを 経由aIdで結合し、そこからグループ化したいbValue

var result = 
from a in db.TableA
join b in db.TableB on a.aId equals b.aId
group b by b.bValue into x
select new {x};

私のコードは、グループの後の結合を認識しません。つまり、グループ化は機能しますが、結合は機能しません (少なくとも、結合後にすべてのデータにアクセスする方法がわかりません)。

4

2 に答える 2

22

groupとの間の式byは、グループ要素を作成します。

var result =  
from a in db.TableA 
join b in db.TableB on a.aId equals b.aId 
group new {A = a, B = b} by b.bValue;

  // demonstration of navigating the result
foreach(var g in result)
{
  Console.WriteLine(g.Key);
  foreach(var x in g)
  {
    Console.WriteLine(x.A.aId);
    Console.WriteLine(x.B.bId);
  }
}
于 2010-05-20T19:12:35.127 に答える
0

オブジェクトresultは になるIQueryable<IGrouping<T>>ため、結果コレクションの 1 つにアクセスする必要があります。これは になります。次に、そのコレクションをIGrouping<T>掘り下げてオブジェクトを取得します。x

于 2010-05-20T19:20:10.757 に答える