J'essaie de répliquer le code SQL suivant en utilisant LINQ to EF mais sans succès.Liaison LINQ à EF à gauche avec des conditions multiples
select * from Role
left join QueueAccess on Role.RoleId = QueueAccess.RoleId and queueId = 361
Voici ce que j'ai essayé.
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();
Vous avez également essayé.
var myAccess = entity.Role.Include(p => p.QueueAccess)
.Where(x => x.QueueAccess.Any(a => a.QueueId == queueId)).ToList();
Je continue à obtenir que le dossier avec le queueId spécifié, mais aucun des autres dossiers où la queueId est nulle.
Merci pour votre aide.
DefaultIfEmpty() n'est pas pris en charge dans EF à partir de ce que j'ai essayé. Seriez-vous en mesure d'offrir un travail autour? Merci – Joe
'DefaultIfEmpty' est pris en charge dans EF 4 mais pas dans EF 1. –
@Joe: Avez-vous une collection comme Role.QueueAccesses dans votre modèle? –