2016-12-20 4 views
2

私はoracleクエリーを与えられており、linqにそれを翻訳しようとしています。私はインナーセレクトのポイントまで成功しています。以下linqへの入れ子選択oracleクエリーの翻訳

select distinct pm.projNumber, nvl(s.submission_nbr, ppo.submission_nbr) submission_nbr, nvl(ot.objectname, pot.objectname) objectname , wa.assigned, f.lname, f.fname 
from wfassignment wa 
    join CodeTab c on c.codeid = wa.appr_stat 
    join projobject po on po.objectid = wa.objectid 
    join projmain pm on pm.projid = po.projid 
    join hhistory s on s.Prop_no = pm.Prop_No and s.Inst_Code = pm.Inst_Code and pm.System = 'foo' and s.mark = po.mark 
    left join objecttypes ot on ot.objecttype = po.objecttype and ot.system = pm.system 
    left join(
     select a.mark, a.objecttype, a.submitdate, c.submission_nbr 
     from projobject a 
      join b on b.projid = a.projid 
      join c on c.Prop_no = b.Prop_No and c.Inst_Code = b.Inst_Code and b.System = 'foo' and c.mark = a.mark) ppo on ppo.mark = s.parentmark 
    left join objecttypes pot on pot.objecttype = ppo.objecttype and pot.system = pm.system 
    join faculty f on f.unique_id = wa.unique_id 
where wa.completed is null and wa.unique_id in ('foo', 'bar', 'foo', 'bar') 

まで私のC#コードである "左(...選択)参加"

var pageObject = (
    from wa in db.WFASSIGNMENTs 
     join c in db.CODETABs on wa.APPR_STAT equals c.CODEID 
     join po in db.PROJOBJECTs on wa.OBJECTID equals po.OBJECTID 
     join pm in db.PROJMAINs on po.PROJID equals pm.PROJID 
     join s in db.HHISTORies on new { pm.PROP_NO, pm.INST_CODE, po.MARK } equals new { s.PROP_NO, s.INST_CODE, s.MARK } 
     join ot in db.OBJECTTYPES on new { OBJECTTYPE = po.OBJECTTYPE, pm.SYSTEM } equals new { OBJECTTYPE = ot.OBJECTTYPE1, ot.SYSTEM } 

どのように私は、LINQの内側の選択を翻訳していますか?

答えて

1

私は別の変数にインナーセレクトを引き出し、その変数にちょうど参加しました。トリックをしました。

関連する問題