Partilhar via


EntityFrameworkServiceCollectionExtensions.AddPooledDbContextFactory Método

Definição

Sobrecargas

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

Registra um IDbContextFactory<TContext> no IServiceCollection para criar instâncias de determinado DbContext tipo em que as instâncias são agrupadas para reutilização.

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

Registra um IDbContextFactory<TContext> no IServiceCollection para criar instâncias de determinado DbContext tipo em que as instâncias são agrupadas para reutilização.

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

Origem:
EntityFrameworkServiceCollectionExtensions.cs
Origem:
EntityFrameworkServiceCollectionExtensions.cs
Origem:
EntityFrameworkServiceCollectionExtensions.cs
Origem:
EntityFrameworkServiceCollectionExtensions.cs
Origem:
EntityFrameworkServiceCollectionExtensions.cs

Registra um IDbContextFactory<TContext> no IServiceCollection para criar instâncias de determinado DbContext tipo em que as instâncias são agrupadas para reutilização.

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

Parâmetros de tipo

TContext

O tipo de DbContext a ser criado pela fábrica.

Parâmetros

serviceCollection
IServiceCollection

O IServiceCollection ao qual adicionar serviços.

optionsAction
Action<DbContextOptionsBuilder>

Uma ação necessária para configurar o DbContextOptions para o contexto. Ao usar o pool de contexto, a configuração de opções deve ser executada externamente; OnConfiguring(DbContextOptionsBuilder) não será chamado.

poolSize
Int32

Define o número máximo de instâncias retidas pelo pool. O padrão é 1024.

Retornos

A mesma coleção de serviços para que várias chamadas possam ser encadeadas.

Comentários

Registrar uma fábrica em vez de registrar o tipo de contexto diretamente permite a criação fácil de novas DbContext instâncias. O registro de uma fábrica é recomendado para aplicativos Blazor e outras situações em que o escopo de injeção de dependência não está alinhado com o tempo de vida do contexto.

Use esse método ao usar a injeção de dependência em seu aplicativo, como com o Blazor. Para aplicativos que não usam injeção de dependência, considere criar DbContext instâncias diretamente com seu construtor. Em OnConfiguring(DbContextOptionsBuilder) seguida, o método pode ser substituído para configurar uma cadeia de conexão e outras opções.

O Entity Framework Core não oferece suporte para várias operações simultâneas sendo executadas na mesma instância DbContext. Isso inclui a execução paralela de consultas assíncronas e qualquer uso simultâneo explícito de vários threads. Portanto, sempre aguarde chamadas assíncronas imediatamente ou use instâncias DbContext separadas para operações executadas em paralelo. Consulte Evitando problemas de threading de DbContext para obter mais informações e exemplos.

Consulte Usando DbContext com injeção de dependência, Usando fábricas DbContext e Usando o pool de DbContext para obter mais informações e exemplos.

Aplica-se a

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

Origem:
EntityFrameworkServiceCollectionExtensions.cs
Origem:
EntityFrameworkServiceCollectionExtensions.cs
Origem:
EntityFrameworkServiceCollectionExtensions.cs
Origem:
EntityFrameworkServiceCollectionExtensions.cs
Origem:
EntityFrameworkServiceCollectionExtensions.cs

Registra um IDbContextFactory<TContext> no IServiceCollection para criar instâncias de determinado DbContext tipo em que as instâncias são agrupadas para reutilização.

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

Parâmetros de tipo

TContext

O tipo de DbContext a ser criado pela fábrica.

Parâmetros

serviceCollection
IServiceCollection

O IServiceCollection ao qual adicionar serviços.

optionsAction
Action<IServiceProvider,DbContextOptionsBuilder>

Uma ação necessária para configurar o DbContextOptions para o contexto. Ao usar o pool de contexto, a configuração de opções deve ser executada externamente; OnConfiguring(DbContextOptionsBuilder) não será chamado.

poolSize
Int32

Define o número máximo de instâncias retidas pelo pool. O padrão é 1024.

Retornos

A mesma coleção de serviços para que várias chamadas possam ser encadeadas.

Comentários

Registrar uma fábrica em vez de registrar o tipo de contexto diretamente permite a criação fácil de novas DbContext instâncias. O registro de uma fábrica é recomendado para aplicativos Blazor e outras situações em que o escopo de injeção de dependência não está alinhado com o tempo de vida do contexto.

Use esse método ao usar a injeção de dependência em seu aplicativo, como com o Blazor. Para aplicativos que não usam injeção de dependência, considere criar DbContext instâncias diretamente com seu construtor. Em OnConfiguring(DbContextOptionsBuilder) seguida, o método pode ser substituído para configurar uma cadeia de conexão e outras opções.

O Entity Framework Core não oferece suporte para várias operações simultâneas sendo executadas na mesma instância DbContext. Isso inclui a execução paralela de consultas assíncronas e qualquer uso simultâneo explícito de vários threads. Portanto, sempre aguarde chamadas assíncronas imediatamente ou use instâncias DbContext separadas para operações executadas em paralelo. Consulte Evitando problemas de threading de DbContext para obter mais informações e exemplos.

Consulte Usando DbContext com injeção de dependência, Usando fábricas DbContext e Usando o pool de DbContext para obter mais informações e exemplos.

Aplica-se a