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
SQLクエリに似ていますが、最後の 'WHERE'は基本的に' LEFT OUTER'ジョインを 'INNER'にしているので意味がありません。 –
SQLをポストして変換を依頼しないでください。少なくともクラスモデルを表示して、ナビゲーションプロパティと関連の多重度を確認します。また、あなた自身の最初の努力を示してください。彼らは、あなたが思うかもしれないよりも、私たちにもっと明らかにします。 –