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();

 

No comment

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.