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!”
- using(NorthwindEntities ne=new NorthwindEntities())
- {
- var result = from customer in ne.Customers
- where customer.Orders.Any() == true
- select customer.ContactName;
- }
“Hiç siparişi olmayan müşterileri listele!”
- using (NorthwindEntities ne = new NorthwindEntities())
- {
- var result = from customer in ne.Customers
- where customer.Orders.Any() == false
- select customer.ContactName;
- GridView1.DataSource = result;
- GridView1.DataBind();
- }
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
Comments 0