Linq To Sql – JOIN
Linq To Sql’de Join işlemleri nasıl yapılır onu inceleyelim.
Hemen bir örnekle izah etmeye çalışalım.
Önceki yazılarımda hazırladığım Northwind.dbml dosyasını kullanacağım.
–Beverages kategorisindeki ürünler hangileridir ?
NorthwindDataContext Northwind = new NorthwindDataContext();
var Sonuc = from kategori in Northwind.Kategorilers
join urun in Northwind.Urunlers on kategori.KategoriID equals urun.KategoriID
where kategori.KategoriAdi == "Beverages"
select new
{
Urun = urun.UrunAdi
};
foreach (var item in Sonuc)
{
listBox1.Items.Add(item.Urun);
}
“join” anahtar sözcüğünden sonraki parametre “Northwind.Urunlers” koleksiyonundaki bir nesneyi işaret etmektedir.”on” anahtar sözcüğü ile ilişkili sütunları eşitliyoruz.Eşitleme işlemini “equals” komutuyla yapıyoruz.
–Spain’de yaşayan müşteriler ve bu müşterilere yapılan satış sayısı? Hiç satış yapılmayan müşteriler listelenmesin.
NorthwindDataContext Northwind = new NorthwindDataContext();
var Sonuc = from satis in Northwind.Satislars
where satis.Musteriler.Ulke =="Spain"
join musteri in Northwind.Musterilers on satis.MusteriID equals musteri.MusteriID
group satis by satis.Musteriler.MusteriAdi into Grup
where Grup.Count() > 0
select new
{
Satis = Grup.Count(),
MusteriAdi = Grup.Key
};
foreach (var item in Sonuc)
{
listBox1.Items.Add(item.MusteriAdi + " " + item.Satis);
}
LINQ’da join yaparken, nesneler üzerinden de birleştirme yapabiliriz.
NorthwindDataContext Northwind = new NorthwindDataContext();
var Sonuc = from musteri in Northwind.Musterilers
where musteri.Ulke == "Spain"
join satis in Northwind.Satislars on musteri equals satis.Musteriler
group satis by satis.Musteriler.MusteriAdi into Grup
select new {
Satis = Grup.Count(),
MusteriAdi = Grup.Key
};
foreach (var item in Sonuc)
{
listBox1.Items.Add(item.Satis + " " + item.MusteriAdi);
}
İyi çalışmalar

Son örnekte Northwind.Satislars veritanindaki bi alanı nasıl alabilirim select new kısmına ?