2016-03-28 27 views
0

Bu sorguyu SQL'de alıyorum ve bunu LINQ using Entity Framework uygulamasında uygulamak istiyorum, ancak sol dış birleştirmelerde birden çok tablo nasıl uygulayabilirim? Ben size yardımcı olur umarımLinq birden çok tablo için SQL sol dış birleştirmek

using(var cxt = new YourDataBaseContext()){ 
    var firstJoin = from t in cxt.BookReceiptMast 
        join y in cxt.BookReceiptDtl 
         on t.BookReceiptMastId equals y.BookReceiptMastId 
        into yTemp 
        from y in yTemp.DefaultIfEmpty() 
        select new 
        { 
         Id = y != null ? y.BookMastId : 0, 
         vrsn = t.VrsnMastId 
        }; 

    var allTables = from p in cxt.BookMast 
        join s in firstJoin 
         on p.BookMastId equals s.Id 
         into sTemp 
        from s in sTemp 
        where s.vrsn == 2 
        select new 
        { 
         mastId = p.BookMastId 
        }; 
} 

:

SELECT p.BookMastId as mastId 
FROM BookMast p 
left outer JOIN (SELECT y.BookMastId as Id, t.VrsnMastId as vrsn FROM BookReceiptMast t 
left outer JOIN BookReceiptDtl y 
on t.BookReceiptMastId = y.BookReceiptMastId) s 
on p.BookMastId = s.Id where s.vrsn = 2 
+1

Bunu, SQL sorgunuza benzer şekilde yapabilirsiniz, ancak mantıklı değildir çünkü son 'WHERE' temelde tüm 'SOL OUTER' 'INNER' öğesine katılır. –

+0

Lütfen sadece SQL göndermeyin ve dönüştürme isteğinde bulunmayın. En azından bir sınıf modelini göstermek için gezinme özellikleri ve çok sayıda ilişkilendirmenin görünür olduğunu gösterin. Ayrıca, kendi ilk çabalarınızı gösterin. Bize düşündüğünüzden daha fazla açıklar. –

cevap

0

aynen bu şekilde from var in collection join in sözdizimi, bir şey kullanın.

İlgili konular