次のSQLクエリのように、EF 4.0クエリでlinq 2 sqlを作成しようとしています。
SELECT * FROM Role
LEFT JOIN Queue
ON Role.RoleId = Queue.RoleId
WHERE QueueId = 361
では、EF 4.0 でこれを行うにはどうすればよいでしょうか。
次のSQLクエリのように、EF 4.0クエリでlinq 2 sqlを作成しようとしています。
SELECT * FROM Role
LEFT JOIN Queue
ON Role.RoleId = Queue.RoleId
WHERE QueueId = 361
では、EF 4.0 でこれを行うにはどうすればよいでしょうか。
通常、これはエンティティを取得するときに読み込まれるナビゲーション プロパティを使用して行われますが、次の方法でも行うことができます。
from r in Roles
from q in Queues
where r.RoleId == q.RoleId
where q.QueueId == 361
select new { r.RoleId, q.QueueId /*other bits you want*/}
次のことを試してください
結合についてもっと検索することをお勧めします
var result=(from p in Roles
join pa in Queue on p.RoleId equals pa.RoleId into temproles
from addresses in temproles.DefaultIfEmpty() where temproles.queueId = 361
select new { p, pa} );