2012-04-09 5 views
2

다음 SQL 쿼리와 같이 EF 4.0 쿼리에서 linq 2 sql을 만들려고합니다.LINQ 및 EntityFramework를 사용하여 조인을 구현하는 방법

SELECT * FROM Role 
LEFT JOIN Queue 
ON Role.RoleId = Queue.RoleId 
WHERE QueueId = 361 

어떻게하면 EF 4.0에서이 작업을 수행 할 수 있습니까? 일반적으로이 당신이 개체를 얻을 때, 그러나 당신은 또한 다음과 같이이 작업을 수행 할 수로드 탐색 속성을 사용하여 수행됩니다

+1

Linq; Linq가 Sql이 아닙니다. –

+0

@AndrewBarber : 아니오, 저는 그가 LINQ to SQL을 의미한다고 확신합니다. 또는 그가 EF와 매핑하기 때문에 LINQ to Entities를보다 정확하게 생성 할 수 있습니다. 여기를 참조하십시오 : http://msdn.microsoft.com/en-us/library/bb386964.aspx –

+2

@Mike LINQ to SQL은 EF와 완전히 다른 제품입니다. 그가 nHibernate에 대해 이야기하고 있었다고 말하는 것과 같습니다. –

답변

4

:

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*/} 
+0

안녕하세요. 만약 내가 여러 테이블을 누른 다음이 작동합니까? – Ali

+0

@Ali 반드시 알 수 있습니다. *에서 *는 linq의 쿼리에 사용 가능한 데이터 소스를 나타냅니다. 이것은 SQL 내부의 JOIN 개념과 유사하며 linq 쿼리가 SQL로 변환되면 SQL JOIN이됩니다. 나는 여러 가지 * *를 * 조인 * 문 대신 쿼리에서 사용하는 것이 훨씬 더 읽기 쉽습니다. –

+0

도움을 주셔서 감사합니다 .its 나를 위해 일합니다. – Ali

3

은 내가 그것을

난 것 도움이되기를 바랍니다 다음 시도 조인에 대한 자세한 검색을 권합니다.

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}); 
관련 문제