我想复制以下SQL使用LINQ到EF但没有运气。LINQ到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的记录,但没有其他记录中,其中queueId为空。
感谢您的帮助。
从我尝试过的EF中不支持DefaultIfEmpty()。你能够提供解决方法吗?谢谢 – Joe 2010-01-29 17:20:24
EFI 4支持'DefaultIfEmpty',但不支持EF 1. – 2010-01-29 21:37:59
@Joe:您的模型中是否有类似Role.QueueAccesses的集合? – 2010-01-29 22:06:49