LINQ에서와 동일한 구문을 사용하여 LINQ to SQL 쿼리를 정의합니다. 유일한 차이점은 쿼리에서 참조되는 개체가 데이터베이스의 요소에 매핑된다는 것입니다. 자세한 내용은 LINQ 쿼리 소개(C#)를 참조하세요.
LINQ to SQL은 사용자가 작성하는 쿼리를 동등한 SQL 쿼리로 변환하고 처리를 위해 서버로 보냅니다. 보다 구체적으로, 애플리케이션은 LINQ to SQL API를 사용하여 쿼리 실행을 요청합니다. 그런 다음 LINQ to SQL 공급자는 쿼리를 SQL 텍스트로 변환하고 실행을 ADO 공급자에게 위임합니다. ADO 공급자는 쿼리 결과를 .로 DataReader
반환합니다. LINQ to SQL 공급자는 ADO 결과를 사용자 개체 컬렉션으로 IQueryable 변환합니다.
비고
.NET Framework 기본 제공 형식의 대부분의 메서드와 연산자는 SQL로 직접 변환됩니다. LINQ에서 변환할 수 없는 경우 런타임 예외가 생성됩니다. 자세한 내용은 SQL-CLR 형식 매핑을 참조하세요.
다음 표에서는 LINQ 및 LINQ to SQL 쿼리 항목 간의 유사점과 차이점을 보여 줍니다.
항목 | LINQ 쿼리 | LINQ to SQL 쿼리 |
---|---|---|
쿼리를 보유하는 지역 변수의 반환 형식(시퀀스를 반환하는 쿼리의 경우) | 일반적인 IEnumerable |
일반적인 IQueryable |
데이터 원본 지정 |
From (Visual Basic) 또는 from (C#) 절 사용 |
동일 |
필터링 |
Where
/
where 절을 사용합니다 |
동일 |
그룹화 |
Group…By
/
groupby 절을 사용합니다 |
동일 |
선택(프로젝팅) |
Select
/
select 절을 사용합니다 |
동일 |
지연 및 즉시 실행 | LINQ 쿼리 소개 참조(C#) | 동일 |
조인 구현 |
Join
/
join 절을 사용합니다 |
Join
/
join 절을 사용할 수 있으며 AssociationAttribute 특성을 보다 효과적으로 사용할 수 있습니다. 자세한 내용은 관계 간 쿼리를 참조하세요. |
원격 및 로컬 실행 | 자세한 내용은 원격 실행과 로컬 실행을 참조하세요. | |
스트리밍 및 캐시된 쿼리 | 로컬 메모리 시나리오에는 적용되지 않음 |