2016-03-28 15 views
0

私はこのクエリをSQLで実装していますが、それをLINQ using Entity Frameworkに実装したいのですが、どうすれば外部結合から複数のテーブルを適用できますか?私はそれがあなたの役に立てば幸いSQLからLinqへの複数のテーブルの外部への結合

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 
        }; 
} 

:あなただけfrom var in collection join in構文、このようなものを使用することができます

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

SQLクエリに似ていますが、最後の 'WHERE'は基本的に' LEFT OUTER'ジョインを 'INNER'にしているので意味がありません。 –

+0

SQLをポストして変換を依頼しないでください。少なくともクラスモデルを表示して、ナビゲーションプロパティと関連の多重度を確認します。また、あなた自身の最初の努力を示してください。彼らは、あなたが思うかもしれないよりも、私たちにもっと明らかにします。 –

答えて

0

関連する問題