我想複製以下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