Linq左连接+多条件,该怎么解决
Linq左连接+多条件
select p.Id,r.Id,s.Id,s.Name,p.Title,p.TotalScore from JHExamPaper as ep
inner join Paper as p on ep.PaperId=p.Id
inner join Subject as s on p.SubjectId=s.Id
left join ExamPaperStudent as eps on ep.PaperId=eps.PaperId and eps.ExamId='B39A5BEE-8021-4A0D-8CC2-4BDEFC580579' and UserId='110813D3-AF1D-41A2-9F39-B44604CA2BC6'
left join Report as r on eps.Id=r.EPSId
如何把上面的SQL转化成Linq,求大神指教,在线等。
------解决方案--------------------
select p.Id,r.Id,s.Id,s.Name,p.Title,p.TotalScore from JHExamPaper as ep
inner join Paper as p on ep.PaperId=p.Id
inner join Subject as s on p.SubjectId=s.Id
left join ExamPaperStudent as eps on ep.PaperId=eps.PaperId and eps.ExamId='B39A5BEE-8021-4A0D-8CC2-4BDEFC580579' and UserId='110813D3-AF1D-41A2-9F39-B44604CA2BC6'
left join Report as r on eps.Id=r.EPSId
如何把上面的SQL转化成Linq,求大神指教,在线等。
------解决方案--------------------
var query=from ep in JHExamPaper
join p in Paper on ep.PaperId equals p.Id
join s in Subject on p.SubjectId equals s.Id
join eps in ExamPaperStudent on ep.PaperId equals eps.PaperId into leftJoinGroup
from eps in leftJoinGrou.DefaultIfEmpty()
join r in Report on eps.Id equlas r.EPSId into Left
from r in Left.DefalutIfEmpty()
where eps.ExamId=="B39A5BEE-8021-4A0D-8CC2-4BDEFC580579" && eps.UserId=="110813D3-AF1D-41A2-9F39-B44604CA2BC6"
select new
{
p.Id,r.Id,s.Id,s.Name,p.Title,p.TotalScore
};