如何将此查询转换为具有左外部联接的linq
在将此查询转换为linq时,我得到了不同的记录集。有人能帮我吗如何将此查询转换为具有左外部联接的linq,linq,c#-4.0,Linq,C# 4.0,在将此查询转换为linq时,我得到了不同的记录集。有人能帮我吗 select p.Id , p.lastname from Participants p left outer join CertificationStatusLevels c on p.CertificationStatusID = c.ID left outer join BUOrgs po on p.PrimaryOrgID = po.ID inner join participantR
select p.Id , p.lastname from Participants p
left outer join CertificationStatusLevels c on p.CertificationStatusID = c.ID
left outer join BUOrgs po on p.PrimaryOrgID = po.ID
inner join participantRoles pr on p.id= pr.ParticipantId
inner join roles Ro on pr.RolesId=Ro.id
where p.IsActive =1 and ro.id=4 and pr.IsActive =1
质疑
如果LINQ查询不完整,还请包括您的错误尝试。另外,由于我看不到
c
和po
的任何用法,所以不清楚为什么需要这些左外部联接(在两个查询中)。
from p in _unitOfWork.Context.Participants
join c in _unitOfWork.Context.CertificationStatusLevels on
p.CertificationStatusID equals c.ID into pc
join po in _unitOfWork.Context.BUOrgs on p.PrimaryOrgID equals po.ID into bp
join pr in _unitOfWork.Context.ParticipantRoles on p.Id equals
pr.ParticipantId
join ro in _unitOfWork.Context.Roles on pr.RolesId equals ro.Id
from Combined1 in pc.DefaultIfEmpty()
from Combined2 in bp.DefaultIfEmpty()