LINQ-to-EF left join mit mehreren Zustand
Ich versuche zu replizieren Sie die folgenden SQL-Anweisungen mit LINQ-to-EF, aber ohne Glück.
select * from Role
left join QueueAccess on Role.RoleId = QueueAccess.RoleId and queueId = 361
Hier ist, was ich versucht habe.
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();
Habe auch versucht diese.
var myAccess = entity.Role.Include(p => p.QueueAccess)
.Where(x => x.QueueAccess.Any(a => a.QueueId == queueId)).ToList();
Ich immer nur den Datensatz mit der angegebenen queueId, aber keiner der anderen Datensätze, in denen die queueId null ist.
Vielen Dank für Ihre Hilfe.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist fast immer ein Fehler, verwenden Sie
join
in LINQ to Entities. Stattdessen tun:Probieren Sie etwas wie dieses:
DefaultIfEmpty
unterstützt wird EF 4, aber nicht in EF-1.Etwas, wie das funktioniert, stellt die Bedingung in der ON-als Gegensatz zu der WHERE-Klausel.