linq query : 및 선택
LINQ 쿼리를 사용할 때 또는
를 선택하면 성능 및 데이터 검색에 큰 영향을 미칩니다. 이 두 인터페이스는 지연된 실행을 처리 할 때 다르므로 데이터 쿼리의 최적화 및 효율적인 처리가 가능합니다.
지연 실행 : 임계 차이
및 IEnumerable<T>
모두 지연 실행을 지원하므로 쿼리가 생성 될 때 즉시 실행되지 않습니다. 대신, 쿼리는 향후 수행 될 수있는 표현식으로 표현됩니다. 그러나 각 인터페이스 처리 지연 실행 사이에는 주요 차이가 있습니다. IQueryable<T>
: 데이터베이스는 쿼리와 관련이 없습니다
는 LINQ에서 SQL 쿼리를 가능하게하는 인터페이스로, 높은 레벨 작업이 기본 데이터베이스를 이해하지 않고도 데이터 소스를 수행 할 수 있도록합니다. 쿼리 제공 업체 (LINQ에서 SQL의 경우 데이터베이스 엔진) 에서 문의를 수행 할 때 쿼리를 변환하고 최적화 된 SQL 문으로 변환하는 데이터베이스 엔진입니다.
이 최적화 된 SQL 문은 데이터베이스 서버에서 실행되며 쿼리 조건과 일치 한 결과 만 반환합니다. 추가 개선이 필요한 경우, 고성능 및 최적화 수준을 유지하기 위해 새 쿼리도 데이터베이스에서 실행됩니다.
: 메모리에서의 작동 IEnumerable<T>
IQueryable<T>
반대로 는 메모리의 객체 세트를 나타냅니다. 가 쿼리를 실행하면 원래 쿼리와 일치하는 모든 객체가 데이터 소스 (이 예제의 데이터베이스)에서 즉시 검색됩니다. 전체 컬렉션이 메모리에로드되면 쿼리의 추가 개선이 메모리에서 수행되므로 메모리가 너무 많습니다.
올바른 옵션을 선택하십시오
및 의 선택은 응용 프로그램의 특정 요구 사항에 따라 다릅니다.
사용시기 : IQueryable<T>
여러 연결 및 스크리닝 조건을 갖는 복잡한 쿼리
는 성능 최적화 및 감소 데이터베이스로드 가 필요합니다
PAGE 및 정렬 해야하는 대형 데이터 세트
-
사용시기 : -
메모리의 선별 및 처리와 관련된 문의
메모리에 배치 할 수있는 작은 데이터 세트
즉시 검색해야하며 객체 작업
-
IEnumerable<T>
과 의 차이를 이해함으로써 개발자는 최상의 성능과 효율적인 데이터 처리를 보장하기 위해 응용 프로그램에서 사용하려는 인터페이스에 대해 현명한 결정을 내릴 수 있습니다.
위 내용은 ienumerable 대 iqueryable : 언제 어느 것을 선택해야합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!