linq framework etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
linq framework etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

5 Kasım 2014 Çarşamba

Linq ile subquery kullanımı

Bu aralar yaptığım projede entity framework kullandığım için linq problemleriyle çok karşılaşıyorum.Aslında basit konulardır fakat henüz yeni yeni geliştirdiğim için kendimi bu konuda sıkıntıları çekmeye de devam edeceğe benziyorum.Ama yılmak yok.

İçiçe sorgu için stackoverflowdan en son çözüm olarak bulduğum sorgu budur

from p in context.ParentTable
 let cCount =

( from c in context.ChildTable
 where p.ParentId == c.ChildParentId
 select c
).Count()
select new { ParentId = p.Key, Count = cCount } ;

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.

Linq de ISNULL(,) fonksiyonu

Elimde bulunan bir sql sorgusunu linqe çevirirken isnull fonksiyonunun kullanılışını gördüm ve buraya yazıyorum.
Örnek sql;

SELECT isNull(Qty,0) FROM BillMain

Linq Versiyonu ;
var result= from b in BillMain select new{Qty=(b.Qty==DBNull.value ? 0:b.Qty)}