SELECT CONCAT(e.FirstName, ' ', e.LastName) AS FullName FROM Employees e WHERE e.DepartmentId IN ( SELECT d.Id FROM Departments d WHERE d.IsWfhAllowed = 1 );
이 글에서는 LINQ 쿼리 구문 쿼리에서 let이 무엇인지 살펴보겠습니다. LINQ에서 간과되는 기능이라고 생각합니다.
IQueryable<string> wfhEmployees = from e in context.Employees where context.Departments .Where(d => d.IsWfhAllowed) .Select(d => d.Id) .Contains(e.DepartmentId) select e.FirstName + " " + e.LastName;
IQueryable<string> wfhEmployees = from e in context.Employees let wfhDepartments = context.Departments .Where(d => d.IsWfhAllowed) .Select(d => d.Id) .ToList() where wfhDepartments .Contains(e.DepartmentId) let fullName = e.FirstName + " " + e.LastName select fullName;
여기서는 후속 절에서 사용하기 위해 하위 표현식의 결과를 저장하기 위해 let을 사용했습니다. 이는 복잡한 쿼리가 있을 때 매우 편리합니다. 쿼리를 여러 하위 표현식으로 나눌 수 있습니다.
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.