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