development

SQL의 여러 내부 조인을 LINQ로 어떻게 변환합니까?

big-blog 2020. 12. 7. 20:14
반응형

SQL의 여러 내부 조인을 LINQ로 어떻게 변환합니까?


LINQ-to-SQL의 기본 사항을 확인했지만 JOIN이 제대로 작동하도록 노력하고 있습니다. 다음을 LINQ-to-SQL로 변환하는 방법을 알고 싶습니다 (이상적으로는 내가 선호하는 형식이므로 메서드 체인을 사용함).

SELECT      c.CompanyId, c.CompanyName,
            p.FirstName + ' ' + p.LastName as AccountCoordinator,
            p2.FirstName + ' ' + p2.LastName as AccountManager
FROM        dbo.Companies c
INNER JOIN  dbo.Persons p
ON          c.AccountCoordinatorPersonId = p.PersonId
INNER JOIN  dbo.Persons p2
ON          c.AccountManagerPersonId = p2.PersonId

쿼리 구문 사용 :

from c in dbo.Companies
join p in dbo.Persons on c.AccountCoordinatorPersonId equals p.PersonId
join p2 in dbo.Persons on c.AccountManagerPersonId equals p2.PersonId
select new
{
    c.CompanyId,
    c.CompanyName,
    AccountCoordinator = p.FirstName + ' ' + p.Surname,
    AccountManager = p2.FirstName + ' ' + p2.Surname
}

메소드 체인 사용 :

dbo.Companies.Join(dbo.Persons, 
                   c => c.AccountCoordinatorPersonId,  
                   p => p.PersonId,  
                   (c, p) => new 
                   {  
                       Company = c,  
                       AccountCoordinator = p.FirstName + ' ' + p.Surname  
                   })
             .Join(dbo.Persons,  
                   c => c.Company.AccountManagerPersonId,  
                   p2 => p2.PersonId,  
                   (c, p2) => new 
                   {  
                       c.Company.CompanyId,  
                       c.Company.CompanyName,  
                       c.AccountCoordinator,  
                       AccountManager = p2.FirstName + ' ' + p2.Surname 
                   });

참고 URL : https://stackoverflow.com/questions/4115321/how-do-i-convert-multiple-inner-joins-in-sql-to-linq

반응형