|
Bu makalemizde SQL’deki DISTINCT komutunun LINQ’teki kullanimini inceleyecegiz.
Öncelikle DISTINCT isleminin kati SQL kodunu inceleyelim:
Elimizde OnlineSatis isminde bir veritabani olsun. Bu veritabani içinde urunler isminde bir tablomuz olsun.
Bu tablodan, elimizde bulunan ürünlerin isimlerini görmek istiyoruz.
Bu islemi gerçeklestirecek SQL kodu asagidaki gibidir:
|
SELECT DISTINCT adi FROM urunler
|
adi sütununda ayni degerden birden çok var. Örnegin 2 adet anakart, 2 adet mouse… bulunmaktadir. Yalniz biz ürün adlarini birer tane olacak sekilde görmek istiyoruz. DISTINCT komutu, bize tekrarlayan kayitlari bir tane gibi gösterir.
Simdi bu islemi LINQ to SQL ile gerçeklestirelim:
Veritabanimizda bulunan urunler tablomuzu bir LINQ to SQL Classes içerisine aktariyoruz. Bu islemi buradan inceleyebilirsiniz.
Bu islemi gerçeklestirdikten sonra kodumuzu yazabiliriz:
|
private void UrunleriGoster()
{
DataClasses1DataContext dc = new DataClasses1DataContext();
var urunlerim = (from urun in dc.urunlers
select urun.adi).Distinct();
foreach (var urunum in urunlerim)
listBox1.Items.Add(urunum);
}
|
(from urun in dc.urunlers select urun.adi).Distinct()
Distinct() komutunun disarida yazilmasinin nedeni, urunler tablosundaki adi sütununda bulunan elemanlari getirdikten sonra bu elemanlar içinde tekrarlananlar varsa bir tane olarak yazilamasi gerektigidir. Yani önce içteki sorgu çalisir, sonra sorgu sonucunda gelen veriler teke indirilir gibi de düsünülebilir.
Kod çalistiktan sonra ekran çiktisi asagidaki gibi olacaktir:
Veysel Ugur KIZMAZ
|