EntityFrameworkServiceCollectionExtensions.AddDbContextPool 메서드

정의

오버로드

AddDbContextPool<TContext>(IServiceCollection, Action<DbContextOptionsBuilder>, Int32)

지정된 DbContext 를 에 IServiceCollection서비스로 등록하고 이 등록에 대해 DbContext 풀링을 사용하도록 설정합니다.

AddDbContextPool<TContext>(IServiceCollection, Action<IServiceProvider,DbContextOptionsBuilder>, Int32)

지정된 DbContext 를 에 IServiceCollection서비스로 등록하고 이 등록에 대해 DbContext 풀링을 사용하도록 설정합니다.

AddDbContextPool<TContextService,TContextImplementation>(IServiceCollection, Action<DbContextOptionsBuilder>, Int32)

지정된 DbContext 를 에 IServiceCollection서비스로 등록하고 이 등록에 대해 DbContext 풀링을 사용하도록 설정합니다.

AddDbContextPool<TContextService,TContextImplementation>(IServiceCollection, Action<IServiceProvider,DbContextOptionsBuilder>, Int32)

지정된 DbContext 를 에 IServiceCollection서비스로 등록하고 이 등록에 대해 DbContext 풀링을 사용하도록 설정합니다.

AddDbContextPool<TContext>(IServiceCollection, Action<DbContextOptionsBuilder>, Int32)

지정된 DbContext 를 에 IServiceCollection서비스로 등록하고 이 등록에 대해 DbContext 풀링을 사용하도록 설정합니다.

public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContextPool<TContext> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> optionsAction, int poolSize = 128) where TContext : Microsoft.EntityFrameworkCore.DbContext;
public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContextPool<TContext> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> optionsAction, int poolSize = 1024) where TContext : Microsoft.EntityFrameworkCore.DbContext;
static member AddDbContextPool : Microsoft.Extensions.DependencyInjection.IServiceCollection * Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> * int -> Microsoft.Extensions.DependencyInjection.IServiceCollection (requires 'Context :> Microsoft.EntityFrameworkCore.DbContext)
<Extension()>
Public Function AddDbContextPool(Of TContext As DbContext) (serviceCollection As IServiceCollection, optionsAction As Action(Of DbContextOptionsBuilder), Optional poolSize As Integer = 128) As IServiceCollection
<Extension()>
Public Function AddDbContextPool(Of TContext As DbContext) (serviceCollection As IServiceCollection, optionsAction As Action(Of DbContextOptionsBuilder), Optional poolSize As Integer = 1024) As IServiceCollection

형식 매개 변수

TContext

등록할 컨텍스트의 형식입니다.

매개 변수

serviceCollection
IServiceCollection

서비스를 추가할 IServiceCollection입니다.

optionsAction
Action<DbContextOptionsBuilder>

컨텍스트에 대해 를 DbContextOptions 구성하는 데 필요한 작업입니다. 컨텍스트 풀링을 사용하는 경우 옵션 구성을 외부에서 수행해야 합니다. OnConfiguring(DbContextOptionsBuilder) 가 호출되지 않습니다.

poolSize
Int32

풀에서 보존하는 최대 인스턴스 수를 설정합니다. 기본값은 1024입니다.

반환

여러 호출을 연결할 수 있도록 동일한 서비스 컬렉션입니다.

설명

DbContext 풀링에서는 컨텍스트 인스턴스를 다시 사용하여 처리량이 높은 시나리오에서 성능을 높일 수 있습니다. 그러나 대부분의 애플리케이션에서 이 성능 향상은 매우 작습니다. 풀링을 사용하는 경우 컨텍스트 구성은 사용 간에 변경할 수 없으며 컨텍스트에 삽입된 범위가 지정된 서비스는 초기 scope 한 번만 확인됩니다. 성능 테스트가 실제 향상을 제공하는 것으로 표시되는 경우에만 DbContext 풀링을 사용하는 것이 좋습니다.

애플리케이션에서 종속성 주입을 사용하는 경우(예: ASP.NET Core 사용) 이 메서드를 사용합니다. 종속성 주입을 사용하지 않는 애플리케이션의 경우 생성자를 사용하여 직접 인스턴스를 만드는 DbContext 것이 좋습니다. 그런 다음 메서드를 재정의 OnConfiguring(DbContextOptionsBuilder) 하여 연결 문자열 및 기타 옵션을 구성할 수 있습니다.

Entity Framework Core는 동일한 DbContext 인스턴스에서 실행되는 여러 병렬 작업을 지원하지 않습니다. 여기에는 비동기 쿼리의 병렬 실행과 여러 스레드에서의 명시적 동시 사용이 모두 포함됩니다. 따라서 항상 즉시 비동기 호출을 기다리거나 병렬로 실행되는 작업에 별도의 DbContext 인스턴스를 사용합니다. 자세한 내용 및 예제 는 DbContext 스레딩 문제 방지 를 참조하세요.

자세한 내용 및 예제는 종속성 주입과 함께 DbContext사용 및 DbContext 풀링 사용을 참조하세요.

적용 대상

AddDbContextPool<TContext>(IServiceCollection, Action<IServiceProvider,DbContextOptionsBuilder>, Int32)

지정된 DbContext 를 에 IServiceCollection서비스로 등록하고 이 등록에 대해 DbContext 풀링을 사용하도록 설정합니다.

public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContextPool<TContext> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<IServiceProvider,Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> optionsAction, int poolSize = 128) where TContext : Microsoft.EntityFrameworkCore.DbContext;
public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContextPool<TContext> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<IServiceProvider,Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> optionsAction, int poolSize = 1024) where TContext : Microsoft.EntityFrameworkCore.DbContext;
static member AddDbContextPool : Microsoft.Extensions.DependencyInjection.IServiceCollection * Action<IServiceProvider, Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> * int -> Microsoft.Extensions.DependencyInjection.IServiceCollection (requires 'Context :> Microsoft.EntityFrameworkCore.DbContext)
<Extension()>
Public Function AddDbContextPool(Of TContext As DbContext) (serviceCollection As IServiceCollection, optionsAction As Action(Of IServiceProvider, DbContextOptionsBuilder), Optional poolSize As Integer = 128) As IServiceCollection
<Extension()>
Public Function AddDbContextPool(Of TContext As DbContext) (serviceCollection As IServiceCollection, optionsAction As Action(Of IServiceProvider, DbContextOptionsBuilder), Optional poolSize As Integer = 1024) As IServiceCollection

형식 매개 변수

TContext

등록할 컨텍스트의 형식입니다.

매개 변수

serviceCollection
IServiceCollection

서비스를 추가할 IServiceCollection입니다.

optionsAction
Action<IServiceProvider,DbContextOptionsBuilder>

컨텍스트에 대해 를 DbContextOptions 구성하는 데 필요한 작업입니다. 컨텍스트 풀링을 사용하는 경우 옵션 구성을 외부에서 수행해야 합니다. OnConfiguring(DbContextOptionsBuilder) 가 호출되지 않습니다.

poolSize
Int32

풀에서 보존하는 최대 인스턴스 수를 설정합니다. 기본값은 1024입니다.

반환

여러 호출을 연결할 수 있도록 동일한 서비스 컬렉션입니다.

설명

DbContext 풀링에서는 컨텍스트 인스턴스를 다시 사용하여 처리량이 높은 시나리오에서 성능을 높일 수 있습니다. 그러나 대부분의 애플리케이션에서 이 성능 향상은 매우 작습니다. 풀링을 사용하는 경우 컨텍스트 구성은 사용 간에 변경할 수 없으며 컨텍스트에 삽입된 범위가 지정된 서비스는 초기 scope 한 번만 확인됩니다. 성능 테스트가 실제 향상을 제공하는 것으로 표시되는 경우에만 DbContext 풀링을 사용하는 것이 좋습니다.

애플리케이션에서 종속성 주입을 사용하는 경우(예: ASP.NET Core 사용) 이 메서드를 사용합니다. 종속성 주입을 사용하지 않는 애플리케이션의 경우 생성자를 사용하여 직접 인스턴스를 만드는 DbContext 것이 좋습니다. 그런 다음 메서드를 재정의 OnConfiguring(DbContextOptionsBuilder) 하여 연결 문자열 및 기타 옵션을 구성할 수 있습니다.

Entity Framework Core는 동일한 DbContext 인스턴스에서 실행되는 여러 병렬 작업을 지원하지 않습니다. 여기에는 비동기 쿼리의 병렬 실행과 여러 스레드에서의 명시적 동시 사용이 모두 포함됩니다. 따라서 항상 즉시 비동기 호출을 기다리거나 병렬로 실행되는 작업에 별도의 DbContext 인스턴스를 사용합니다. 자세한 내용 및 예제 는 DbContext 스레딩 문제 방지 를 참조하세요.

자세한 내용 및 예제는 종속성 주입과 함께 DbContext사용 및 DbContext 풀링 사용을 참조하세요.

이 오버로드에는 optionsAction 애플리케이션의 IServiceProvider를 제공하는 가 있습니다. 이 기능은 Entity Framework Core를 설정하여 기본 애플리케이션 서비스 공급자에서 내부 서비스를 resolve 경우에 유용합니다. 기본적으로 Entity Framework가 내부 Entity Framework 서비스에 대해 자체 IServiceProvider 적으로 만들고 유지 관리할 수 있도록 하는 를 사용하는 AddDbContextPool<TContext>(IServiceCollection, Action<DbContextOptionsBuilder>, Int32) 것이 좋습니다.

적용 대상

AddDbContextPool<TContextService,TContextImplementation>(IServiceCollection, Action<DbContextOptionsBuilder>, Int32)

지정된 DbContext 를 에 IServiceCollection서비스로 등록하고 이 등록에 대해 DbContext 풀링을 사용하도록 설정합니다.

public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContextPool<TContextService,TContextImplementation> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> optionsAction, int poolSize = 128) where TContextService : class where TContextImplementation : Microsoft.EntityFrameworkCore.DbContext, TContextService;
public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContextPool<TContextService,TContextImplementation> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> optionsAction, int poolSize = 1024) where TContextService : class where TContextImplementation : Microsoft.EntityFrameworkCore.DbContext, TContextService;
static member AddDbContextPool : Microsoft.Extensions.DependencyInjection.IServiceCollection * Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> * int -> Microsoft.Extensions.DependencyInjection.IServiceCollection (requires 'ContextService : null and 'ContextImplementation :> Microsoft.EntityFrameworkCore.DbContext and 'ContextImplementation :> 'ContextService)
<Extension()>
Public Function AddDbContextPool(Of TContextService As Class, TContextImplementation As Class) (serviceCollection As IServiceCollection, optionsAction As Action(Of DbContextOptionsBuilder), Optional poolSize As Integer = 128) As IServiceCollection
<Extension()>
Public Function AddDbContextPool(Of TContextService As Class, TContextImplementation As Class) (serviceCollection As IServiceCollection, optionsAction As Action(Of DbContextOptionsBuilder), Optional poolSize As Integer = 1024) As IServiceCollection

형식 매개 변수

TContextService

컨테이너에서 컨텍스트를 resolve 데 사용할 클래스 또는 인터페이스입니다.

TContextImplementation

만들 구체적인 구현 형식입니다.

매개 변수

serviceCollection
IServiceCollection

서비스를 추가할 IServiceCollection입니다.

optionsAction
Action<DbContextOptionsBuilder>

컨텍스트에 대해 를 DbContextOptions 구성하는 데 필요한 작업입니다. 컨텍스트 풀링을 사용하는 경우 옵션 구성을 외부에서 수행해야 합니다. OnConfiguring(DbContextOptionsBuilder) 가 호출되지 않습니다.

poolSize
Int32

풀에서 보존하는 최대 인스턴스 수를 설정합니다. 기본값은 1024입니다.

반환

여러 호출을 연결할 수 있도록 동일한 서비스 컬렉션입니다.

설명

DbContext 풀링에서는 컨텍스트 인스턴스를 다시 사용하여 처리량이 높은 시나리오에서 성능을 높일 수 있습니다. 그러나 대부분의 애플리케이션에서 이 성능 향상은 매우 작습니다. 풀링을 사용하는 경우 컨텍스트 구성은 사용 간에 변경할 수 없으며 컨텍스트에 삽입된 범위가 지정된 서비스는 초기 scope 한 번만 확인됩니다. 성능 테스트가 실제 향상을 제공하는 것으로 표시되는 경우에만 DbContext 풀링을 사용하는 것이 좋습니다.

애플리케이션에서 종속성 주입을 사용하는 경우(예: ASP.NET Core 사용) 이 메서드를 사용합니다. 종속성 주입을 사용하지 않는 애플리케이션의 경우 생성자를 사용하여 직접 인스턴스를 만드는 DbContext 것이 좋습니다. 그런 다음 메서드를 재정의 OnConfiguring(DbContextOptionsBuilder) 하여 연결 문자열 및 기타 옵션을 구성할 수 있습니다.

Entity Framework Core는 동일한 DbContext 인스턴스에서 실행되는 여러 병렬 작업을 지원하지 않습니다. 여기에는 비동기 쿼리의 병렬 실행과 여러 스레드에서의 명시적 동시 사용이 모두 포함됩니다. 따라서 항상 즉시 비동기 호출을 기다리거나 병렬로 실행되는 작업에 별도의 DbContext 인스턴스를 사용합니다. 자세한 내용 및 예제 는 DbContext 스레딩 문제 방지 를 참조하세요.

자세한 내용 및 예제는 종속성 주입과 함께 DbContext사용 및 DbContext 풀링 사용을 참조하세요.

적용 대상

AddDbContextPool<TContextService,TContextImplementation>(IServiceCollection, Action<IServiceProvider,DbContextOptionsBuilder>, Int32)

지정된 DbContext 를 에 IServiceCollection서비스로 등록하고 이 등록에 대해 DbContext 풀링을 사용하도록 설정합니다.

public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContextPool<TContextService,TContextImplementation> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<IServiceProvider,Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> optionsAction, int poolSize = 128) where TContextService : class where TContextImplementation : Microsoft.EntityFrameworkCore.DbContext, TContextService;
public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContextPool<TContextService,TContextImplementation> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<IServiceProvider,Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> optionsAction, int poolSize = 1024) where TContextService : class where TContextImplementation : Microsoft.EntityFrameworkCore.DbContext, TContextService;
static member AddDbContextPool : Microsoft.Extensions.DependencyInjection.IServiceCollection * Action<IServiceProvider, Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> * int -> Microsoft.Extensions.DependencyInjection.IServiceCollection (requires 'ContextService : null and 'ContextImplementation :> Microsoft.EntityFrameworkCore.DbContext and 'ContextImplementation :> 'ContextService)
<Extension()>
Public Function AddDbContextPool(Of TContextService As Class, TContextImplementation As Class) (serviceCollection As IServiceCollection, optionsAction As Action(Of IServiceProvider, DbContextOptionsBuilder), Optional poolSize As Integer = 128) As IServiceCollection
<Extension()>
Public Function AddDbContextPool(Of TContextService As Class, TContextImplementation As Class) (serviceCollection As IServiceCollection, optionsAction As Action(Of IServiceProvider, DbContextOptionsBuilder), Optional poolSize As Integer = 1024) As IServiceCollection

형식 매개 변수

TContextService

컨테이너에서 컨텍스트를 resolve 데 사용할 클래스 또는 인터페이스입니다.

TContextImplementation

만들 구체적인 구현 형식입니다.

매개 변수

serviceCollection
IServiceCollection

서비스를 추가할 IServiceCollection입니다.

optionsAction
Action<IServiceProvider,DbContextOptionsBuilder>

컨텍스트에 대해 를 DbContextOptions 구성하는 데 필요한 작업입니다. 컨텍스트 풀링을 사용하는 경우 옵션 구성을 외부에서 수행해야 합니다. OnConfiguring(DbContextOptionsBuilder) 가 호출되지 않습니다.

poolSize
Int32

풀에서 보존하는 최대 인스턴스 수를 설정합니다. 기본값은 1024입니다.

반환

여러 호출을 연결할 수 있도록 동일한 서비스 컬렉션입니다.

설명

DbContext 풀링에서는 컨텍스트 인스턴스를 다시 사용하여 처리량이 높은 시나리오에서 성능을 높일 수 있습니다. 그러나 대부분의 애플리케이션에서 이 성능 향상은 매우 작습니다. 풀링을 사용하는 경우 컨텍스트 구성은 사용 간에 변경할 수 없으며 컨텍스트에 삽입된 범위가 지정된 서비스는 초기 scope 한 번만 확인됩니다. 성능 테스트가 실제 향상을 제공하는 것으로 표시되는 경우에만 DbContext 풀링을 사용하는 것이 좋습니다.

애플리케이션에서 종속성 주입을 사용하는 경우(예: ASP.NET Core 사용) 이 메서드를 사용합니다. 종속성 주입을 사용하지 않는 애플리케이션의 경우 생성자를 사용하여 직접 인스턴스를 만드는 DbContext 것이 좋습니다. 그런 다음 메서드를 재정의 OnConfiguring(DbContextOptionsBuilder) 하여 연결 문자열 및 기타 옵션을 구성할 수 있습니다.

Entity Framework Core는 동일한 DbContext 인스턴스에서 실행되는 여러 병렬 작업을 지원하지 않습니다. 여기에는 비동기 쿼리의 병렬 실행과 여러 스레드에서의 명시적 동시 사용이 모두 포함됩니다. 따라서 항상 즉시 비동기 호출을 기다리거나 병렬로 실행되는 작업에 별도의 DbContext 인스턴스를 사용합니다. 자세한 내용 및 예제 는 DbContext 스레딩 문제 방지 를 참조하세요.

자세한 내용 및 예제는 종속성 주입과 함께 DbContext사용 및 DbContext 풀링 사용을 참조하세요.

이 오버로드에는 optionsAction 애플리케이션의 IServiceProvider를 제공하는 가 있습니다. 이 기능은 Entity Framework Core를 설정하여 기본 애플리케이션 서비스 공급자에서 내부 서비스를 resolve 경우에 유용합니다. 기본적으로 Entity Framework가 내부 Entity Framework 서비스에 대해 자체 IServiceProvider 적으로 만들고 유지 관리할 수 있도록 하는 를 사용하는 AddDbContextPool<TContextService,TContextImplementation>(IServiceCollection, Action<DbContextOptionsBuilder>, Int32) 것이 좋습니다.

적용 대상