Bu makalemizde SQL’de kullandığımız GROUP BY ifadesinin LINQ to SQL’de nasıl kullanıldığını inceleyeceğiz.
Öncelikle GROUP BY işleminin katı SQL kodunu inceleyelim.
Elimizde OnlineSatis isminde bir veritabanı olsun. Bu veritabanı içinde urunler isminde bir tablomuz olsun.
linq-to-sql-group-by-1

linq-to-sql-group-by-1

Bu tablodaki verileri ürün adlarına göre gruplandırmak ve ürün isimlerini görmek istiyoruz.
 
Bu işlemi gerçekleştirecek SQL kodu aşağıdaki gibidir:
SELECT adi FROM urunler GROUP BY adi
Şimdi bu işlemi LINQ to SQL ile gerçekleştirelim:
Veritabanımızda bulunan urunler tablomuzu bir LINQ to SQL Classes içerisine aktarıyoruz. Bu işlemi buradaninceleyebilirsiniz.
Bu işlemi gerçekleştirdikten sonra kodumuzu yazabiliriz:
private void UrunIsimleriniAl()
{
     DataClasses1DataContext dc = new DataClasses1DataContext();
     var urunlerim = from urunum in dc.urunlers
                         group urunum by urunum.adi;
     foreach (var urun in urunlerim)
          listBox1.Items.Add(urun.Key.ToString());
}
group urunum by urunum.adi
group’tan sonra yazılan parametre, hangi tabloda gruplama yapılacağını belirtir. by’dan sonra yazılan parametre ise tablonun hangi sütununda gruplandırma yapılacağını belirtir.
urun.Key.ToString()
urun değişkeninin türü IGrouping interface’i türündendir. Bu yüzden urun’ün Key’i ile gruplandırma yaptığımız sütundaki elemana ulaşmaktayız.
Kod çalıştıktan sonra ekran çıktısı aşağıdaki gibi olacaktır:
linq-to-sql-group-by-2

linq-to-sql-group-by-2