LINQ Any Methodu ile Entity Framework Master-Details Sorgusu


Tüm yazılım projelerinde ilişkili tablolar mevcuttur. Bu tablolar genellikle Primary Key(Master) – Foreign Key(Detail) ilişkisi ile birbirine bağımlıdır. Bu tabloları Entity Modellerine taşıdığımız zaman Detail görevi gören tablo Master görevi gören tablonun altına “Navigation Properties” olarak düşer. Northwind veritabanındaki Customers-Orders tabloları bunun için ideal bir örnektir. Customers tablosunda genel müşteri bilgileri, Orders tablosunda ise bu müşterilerin siparişleri bulunmaktadır.
Hepimizin şuna benzer bir sorgu yazmamız gerekmiştir. “Siparişi olan müşterileri listele!”, ya da tam tersi! “Hiç siparişi olmayan müşterileri listele!” Böyle birşey için T-SQL yazmayı denerseniz, Inner veya Outer join yazmanız gerekir, fakat LINQ ile bu çok daha kolay.
“Siparişi olan müşterileri listele!”
  1. using(NorthwindEntities ne=new NorthwindEntities())
  2.        {
  3.            var result = from customer in ne.Customers
  4.                         where customer.Orders.Any() == true
  5.                         select customer.ContactName;
  6.        }
“Hiç siparişi olmayan müşterileri listele!”
  1. using (NorthwindEntities ne = new NorthwindEntities())
  2.         {
  3.             var result = from customer in ne.Customers
  4.                          where customer.Orders.Any() == false
  5.                          select customer.ContactName;
  6.             GridView1.DataSource = result;
  7.             GridView1.DataBind();
  8.         }
Burada Any methoduna dikkat etmek gerekiyor. İlgili müşteriye ait tek kayıt bile bulduğunda “True” aksi halde “False” döndürecektir.
Faydalı olması dileğiyle.

Engin Demiroğ,MCT,engin@yazilimDevi.com

Share Button

Comments 0

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

* Copy This Password *

* Type Or Paste Password Here *

12.609 Spam Comments Blocked so far by Spam Free Wordpress

You may also like

More From: Entity Framework

DON'T MISS