Linq Expressions Join Kullanımı

Muhammet Ali
1 Aralık 2016 Perşembe
0

Merhaba Arkadaşlar,

Linq sorgularında join ifadesinin nasıl kullanıldığını örneklerle inceleyelim.

İNNER JOIN Kullanımı

**2 Tablo joinleme;

var id = 1;
var query =
   from hb in db.Haberler
   join rs in db.Resimler hb.ID equals rs.ID
   where post.ID == id
   select new { Baslik = hb.baslik, Resim = rs.Resimadi };

***Sql join mantığına çok benzer gördüğünüz gibi,dikkat edilecek husus iki tablo arasında id leri eşitlerken ' = ' değil 'equals' kullanmamız.

**2 den falza tablo joinleme

var q=(from pd in db.tblProducts 
join od in db.tblOrders on pd.ProductID equals od.ProductID 
join ct in db.tblCustomers on od.CustomerID equals ct.CustID
 orderby od.OrderID 
select new { od.OrderID,
 pd.ProductID,
 pd.Name,
 pd.UnitPrice,
 od.Quantity,
 od.Price,
 Customer=ct.Name
 }).ToList();

 

**Birden fazla alan eşitleyeceğimiz zaman;

var q3 = from c in db.Customers  
         join o in db.Orders on 
            new { a = c.CustomerID, b = c.Country } 
            equals new { a = o.CustomerID, b = "Turkey" }  
         select new  
         {  
             c.ContactName,  
             o.OrderDate  
         };

 

LEFT JOIN Kullanımı

Farkı eşitlemeden sonra into  ve DefaultIfEmpty() methodu ile kullanılması

 

var q=(from pd in db.tblProducts 
join od in db.tblOrders on pd.ProductID equals od.ProductID into t
 from rt in t.DefaultIfEmpty() orderby pd.ProductID 
select new {
 OrderID=(int?)rt.OrderID,
 pd.ProductID,
 pd.Name,
 pd.UnitPrice,
 rt.Quantity,
 rt.Price,
 }).ToList(); 

 

 



Yorum yaz