LINQ to EF를 사용하여 다음 SQL을 복제하려고하지만 행운이 없습니다.LINQ to EF는 여러 조건으로 왼쪽으로 결합합니다.
select * from Role
left join QueueAccess on Role.RoleId = QueueAccess.RoleId and queueId = 361
다음은 내가 시도한 것입니다.
var myAccess = (from role in entity.Role.Include(p => p.QueueAccess)
join qa in entity.QueueAccess
on new { rID = role.RoleId, qID = queueId } equals new { rID = qa.RoleId, qID = qa.QueueId }
select role).ToList();
또한 시도해보십시오.
var myAccess = entity.Role.Include(p => p.QueueAccess)
.Where(x => x.QueueAccess.Any(a => a.QueueId == queueId)).ToList();
queueId가 null 인 다른 레코드는 제외하고 지정된 queueId를 사용하여 레코드 만 가져옵니다.
도움 주셔서 감사합니다. 이 같은
DefaultIfEmpty()는 내가 시도한 것으로부터 EF에서 지원되지 않습니다. 주위에 작품을 제공 할 수 있습니까? 감사합니다 – Joe
'DefaultIfEmpty'는 EF 4에서는 지원되지만 EF 1에서는 지원되지 않습니다. –
@Joe : 모델에 Role.QueueAccesses와 같은 콜렉션이 있습니까? –