다음을 통해 공유


RelationalQueryableExtensions.AsSplitQuery<TEntity> 메서드

정의

별도의 데이터베이스 쿼리를 통해 쿼리 결과의 컬렉션을 로드하도록 구성된 새 쿼리를 반환합니다.

public static System.Linq.IQueryable<TEntity> AsSplitQuery<TEntity> (this System.Linq.IQueryable<TEntity> source) where TEntity : class;
static member AsSplitQuery : System.Linq.IQueryable<'Entity (requires 'Entity : null)> -> System.Linq.IQueryable<'Entity (requires 'Entity : null)> (requires 'Entity : null)
<Extension()>
Public Function AsSplitQuery(Of TEntity As Class) (source As IQueryable(Of TEntity)) As IQueryable(Of TEntity)

형식 매개 변수

TEntity

쿼리할 엔터티의 형식입니다.

매개 변수

source
IQueryable<TEntity>

원본 쿼리입니다.

반환

IQueryable<TEntity>

컬렉션이 별도의 데이터베이스 쿼리를 통해 로드되는 새 쿼리입니다.

설명

이 동작은 쿼리가 여러 컬렉션을 로드할 때 성능을 크게 향상시킬 수 있습니다. 그러나 별도의 쿼리가 사용되므로 동시 업데이트가 발생할 때 일관성 없는 결과가 발생할 수 있습니다. 직렬화 가능 트랜잭션 또는 스냅샷 트랜잭션을 사용하면 분할 쿼리에서 이 문제를 완화하고 일관성을 얻을 수 있지만 다른 성능 비용과 동작 차이를 초래할 수 있습니다.

쿼리에 대한 기본 쿼리 분할 동작은 에서 제어 UseQuerySplittingBehavior(QuerySplittingBehavior)할 수 있습니다.

자세한 내용 및 예제는 EF Core 분할 쿼리 를 참조하세요.

적용 대상