C# Language
IQueryable 인터페이스
수색…
LINQ 쿼리를 SQL 쿼리로 변환
개발자는 IQueryable
및 IQueryable<T>
인터페이스를 사용하여 LINQ 쿼리 ( '언어 통합'쿼리)를 특정 데이터 소스 (예 : 관계형 데이터베이스)로 변환 할 수 있습니다. C #으로 작성된이 LINQ 쿼리를 가져옵니다.
var query = from book in books
where book.Author == "Stephen King"
select book;
변수 books
이 IQueryable<Book>
을 구현하는 유형 인 경우 위의 쿼리는 코드 구조를 반영하는 데이터 구조 인 표현식 트리 형태로 공급자 ( IQueryable.Provider
속성에 설정 됨)에 전달됩니다. .
공급자는 런타임에 표현식 트리를 검사하여 다음을 결정할 수 있습니다.
-
Book
클래스의Author
속성에 대한 술어가있다. - 사용 된 비교 방법은 'equals'(
==
)입니다. - 그것이 평등해야하는 가치는
"Stephen King"
입니다.
이 정보를 사용하면 공급자는 런타임에 C # 쿼리를 SQL 쿼리로 변환하고 해당 쿼리를 관계형 데이터베이스에 전달하여 조건 자와 일치하는 해당 책만 가져올 수 있습니다.
select *
from Books
where Author = 'Stephen King'
query
변수가 반복 될 때 공급자가 호출됩니다 ( IQueryable
은 IEnumerable
구현 함).
이 예제에서 사용 된 공급자는 쿼리 할 테이블을 알고 C # 클래스의 속성을 테이블의 열과 일치시키는 방법을 알기 위해 몇 가지 추가 메타 데이터가 필요하지만 이러한 메타 데이터는 IQueryable
인터페이스의 범위 밖에 있습니다.
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow