Console Sistem ve Servis Programlama SQL ve XML Gibi DataSource Tipleri

Linq Kısa Kod Joinler

Bugün bir çalışma arkadaşımın sorusu üzerine yerinde test ortamı ayarlayamadığımız için gösteremediğim linq ile inner join ve full join yapmanın yolunu bloguma erişen herkesle paylaşacağım.

MSSQL veritabanında test amaçlı olarak 2 tablo oluşturuyorum. Bu tablolar isimler ve siniflar olacak. Bir departmandaki personellerin listesini ekrana yazdıracağız.

using (var db = new testEntities())
{
    //inner join sadece koşul eşleştirmek için
    var conditional= db.isimler.Where(x=>x.siniflar.departman.Equals("BT"));

    //inner join 2 tablodan da verileri birleştirmek için
    var innerjoin = db.isimler.Join(
        db.siniflar, 
        isims=>isims.sinifid,
        sinifs=>sinifs.id,
        (isims, sinifs) => new {
            isimler=isims,
            siniflar=sinifs
        })
        .Where(x=>x.departman.Equals("BT"));

    //full join bunu bilmeyen tarayıcıda çarpı işaretine bassın.
    var fulljoin = db.siniflar.SelectMany(s=>db.isimler.Where(i=>i.sinifid==s.id))
        .Where(x=>x.siniflar.departman.Equals("BT"));

    many.ToList().ForEach((x) =>
    {
        Console.WriteLine(x.adi + " " + x.soyadi);
    });
}
Console.Read();

 

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir