linqde left join kullanımı etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
linqde left join kullanımı etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

4 Kasım 2014 Salı

Linq left outer join kullanımı

Bir önceki yazımdaki isnull fonksiyonu adlı konuyu araştırmama sebep olan sql kodunun içinde left outerda olması bu konuyuda araştırmama itti beni.Konuyla ilgili Oğuz yağmur'un blogunda anlatımı uygulayarak yaptım orjinal link : Buradadur

Yakın zamanda da yaşadığım bir sorun olan site kapalılığı nedeniyle ileride olası oğuz yağmurun sayfa kapatma ihtimaline karşın yazıyı da burada paylaşıyorum.

Linq kodu budur

from kisi in Kisisjoin tlf in Telefonson kisi.ID equals tlf.KisiID into datafrom x in data.DefaultIfEmpty()select new{
   Ad = kisi.Ad,
   Tlf = x.Numara
}

Bu kodun sql çıktısı ise şu şekildedir

SELECT [t0].[Ad], [t1].[Numara] AS [Tlf]
FROM [Kisi] AS [t0]
LEFT OUTER JOIN [Telefon] AS [t1] ON [t0].[ID] = [t1].[KisiID]

Burada normalde telefonu olmayanları getirmesi için yazıyoruz. into data from x in data.DefaultIfEmpty() kodu olmasa telefonu olmayan kişileri listelemeyecekti.