EntityFrameworkServiceCollectionExtensions.AddPooledDbContextFactory Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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)
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)
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
Entity Framework