2010-05-20 27 views
9

iki tablo birleştirme ve grup onları kullandıktan sonra ben aId yoluyla bu iki tabloyu birleştirmek istiyor ve bValueErişim verilerin tümünü linq

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}; 
göre gruplandırmak onları, oradan iki tablo
TableA 
aId 
aValue 

TableB 
bId 
aId 
bValue 

var

Kodum, gruptan sonra katılmayı tanımıyor. Başka bir deyişle, gruplama çalışır, ancak birleştirme (veya en azından katılmadan sonra tüm verilere nasıl erişileceğini anlayamıyorum).

cevap

21

group ve by arasındaki ifade, grup öğeleri oluşturur.

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); 
    } 
} 
+0

Freakin'in çekiciliği gibi çalıştı! Çok teşekkürler! : D – sooprise

+0

Her zaman yeni {A = a, B = b} parçasını kaçırıyordum ... Harika çalışıyor, teşekkürler! – z00l

0

Sizin result nesne bir IQueryable<IGrouping<T>> olacak, bu yüzden IGrouping<T> olacak sonuçları toplama, birine ulaşmak zorunda ve ardından x nesneleri almak için koleksiyon içine kazmak istiyorum.