EntityFrameworkServiceCollectionExtensions.AddDbContextFactory 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
AddDbContextFactory<TContext,TFactory>(IServiceCollection, Action<IServiceProvider,DbContextOptionsBuilder>, ServiceLifetime) |
Registra um IDbContextFactory<TContext> no IServiceCollection para criar instâncias de determinado DbContext tipo. |
AddDbContextFactory<TContext,TFactory>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime) |
Registra um IDbContextFactory<TContext> no IServiceCollection para criar instâncias de determinado DbContext tipo. |
AddDbContextFactory<TContext>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime) |
Registra um IDbContextFactory<TContext> no IServiceCollection para criar instâncias de determinado DbContext tipo. |
AddDbContextFactory<TContext>(IServiceCollection, Action<IServiceProvider,DbContextOptionsBuilder>, ServiceLifetime) |
Registra um IDbContextFactory<TContext> no IServiceCollection para criar instâncias de determinado DbContext tipo. |
AddDbContextFactory<TContext,TFactory>(IServiceCollection, Action<IServiceProvider,DbContextOptionsBuilder>, ServiceLifetime)
Registra um IDbContextFactory<TContext> no IServiceCollection para criar instâncias de determinado DbContext tipo.
public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContextFactory<TContext,TFactory> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<IServiceProvider,Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> optionsAction, Microsoft.Extensions.DependencyInjection.ServiceLifetime lifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Singleton) where TContext : Microsoft.EntityFrameworkCore.DbContext where TFactory : Microsoft.EntityFrameworkCore.IDbContextFactory<TContext>;
public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContextFactory<TContext,TFactory> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<IServiceProvider,Microsoft.EntityFrameworkCore.DbContextOptionsBuilder>? optionsAction, Microsoft.Extensions.DependencyInjection.ServiceLifetime lifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Singleton) where TContext : Microsoft.EntityFrameworkCore.DbContext where TFactory : Microsoft.EntityFrameworkCore.IDbContextFactory<TContext>;
static member AddDbContextFactory : Microsoft.Extensions.DependencyInjection.IServiceCollection * Action<IServiceProvider, Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> * Microsoft.Extensions.DependencyInjection.ServiceLifetime -> Microsoft.Extensions.DependencyInjection.IServiceCollection (requires 'Context :> Microsoft.EntityFrameworkCore.DbContext and 'Factory :> Microsoft.EntityFrameworkCore.IDbContextFactory<'Context>)
<Extension()>
Public Function AddDbContextFactory(Of TContext As DbContext, TFactory As DbContext) (serviceCollection As IServiceCollection, optionsAction As Action(Of IServiceProvider, DbContextOptionsBuilder), Optional lifetime As ServiceLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Singleton) As IServiceCollection
Parâmetros de tipo
- TContext
O tipo de DbContext a ser criado pela fábrica.
- TFactory
O tipo de IDbContextFactory<TContext> a ser registrado.
Parâmetros
- serviceCollection
- IServiceCollection
O IServiceCollection ao qual adicionar serviços.
- optionsAction
- Action<IServiceProvider,DbContextOptionsBuilder>
Uma ação opcional para configurar o DbContextOptions para o contexto. Isso fornece uma alternativa para executar a configuração do contexto substituindo o OnConfiguring(DbContextOptionsBuilder) método em seu contexto derivado.
Se uma ação for fornecida aqui, o OnConfiguring(DbContextOptionsBuilder) método ainda será executado se tiver sido substituído no contexto derivado. OnConfiguring(DbContextOptionsBuilder) A configuração será aplicada além da configuração executada aqui.
Para que as opções sejam passadas para o contexto, você precisa expor um construtor no contexto que o usa DbContextOptions<TContext> e passa para o construtor base de DbContext.
- lifetime
- ServiceLifetime
O tempo de vida com o qual registrar a fábrica e as opções. O padrão é Singleton
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.
Para conveniência, esse método também registra o próprio tipo de contexto como um serviço com escopo. Isso permite que uma instância de contexto seja resolvida de um escopo de injeção de dependência diretamente ou criada pela fábrica, conforme apropriado.
Essa sobrecarga permite que uma implementação específica de IDbContextFactory<TContext> seja registrada em vez de usar a fábrica padrão enviada com o EF Core.
Essa sobrecarga tem um optionsAction
que fornece o do IServiceProvideraplicativo. Isso será útil se você quiser configurar o Entity Framework Core para resolve seus serviços internos do provedor de serviços de aplicativo primário. Por padrão, recomendamos usar AddDbContextFactory<TContext>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime) o que permite que o Entity Framework crie e mantenha o próprio IServiceProvider para serviços internos do Entity Framework.
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 DbContext para obter mais informações e exemplos.
Consulte Usando DbContext com injeção de dependência e Usando fábricas DbContext para obter mais informações e exemplos.
Aplica-se a
AddDbContextFactory<TContext,TFactory>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime)
Registra um IDbContextFactory<TContext> no IServiceCollection para criar instâncias de determinado DbContext tipo.
public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContextFactory<TContext,TFactory> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> optionsAction = default, Microsoft.Extensions.DependencyInjection.ServiceLifetime lifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Singleton) where TContext : Microsoft.EntityFrameworkCore.DbContext where TFactory : Microsoft.EntityFrameworkCore.IDbContextFactory<TContext>;
public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContextFactory<TContext,TFactory> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder>? optionsAction = default, Microsoft.Extensions.DependencyInjection.ServiceLifetime lifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Singleton) where TContext : Microsoft.EntityFrameworkCore.DbContext where TFactory : Microsoft.EntityFrameworkCore.IDbContextFactory<TContext>;
static member AddDbContextFactory : Microsoft.Extensions.DependencyInjection.IServiceCollection * Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> * Microsoft.Extensions.DependencyInjection.ServiceLifetime -> Microsoft.Extensions.DependencyInjection.IServiceCollection (requires 'Context :> Microsoft.EntityFrameworkCore.DbContext and 'Factory :> Microsoft.EntityFrameworkCore.IDbContextFactory<'Context>)
<Extension()>
Public Function AddDbContextFactory(Of TContext As DbContext, TFactory As DbContext) (serviceCollection As IServiceCollection, Optional optionsAction As Action(Of DbContextOptionsBuilder) = Nothing, Optional lifetime As ServiceLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Singleton) As IServiceCollection
Parâmetros de tipo
- TContext
O tipo de DbContext a ser criado pela fábrica.
- TFactory
O tipo de IDbContextFactory<TContext> a ser registrado.
Parâmetros
- serviceCollection
- IServiceCollection
O IServiceCollection ao qual adicionar serviços.
- optionsAction
- Action<DbContextOptionsBuilder>
Uma ação opcional para configurar o DbContextOptions para o contexto. Isso fornece uma alternativa para executar a configuração do contexto substituindo o OnConfiguring(DbContextOptionsBuilder) método em seu contexto derivado.
Se uma ação for fornecida aqui, o OnConfiguring(DbContextOptionsBuilder) método ainda será executado se tiver sido substituído no contexto derivado. OnConfiguring(DbContextOptionsBuilder) A configuração será aplicada além da configuração executada aqui.
Para que as opções sejam passadas para o contexto, você precisa expor um construtor no contexto que o usa DbContextOptions<TContext> e passa para o construtor base de DbContext.
- lifetime
- ServiceLifetime
O tempo de vida com o qual registrar a fábrica e as opções. O padrão é Singleton
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.
Para conveniência, esse método também registra o próprio tipo de contexto como um serviço com escopo. Isso permite que uma instância de contexto seja resolvida de um escopo de injeção de dependência diretamente ou criada pela fábrica, conforme apropriado.
Essa sobrecarga permite que uma implementação específica de IDbContextFactory<TContext> seja registrada em vez de usar a fábrica padrão enviada com o EF Core.
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 DbContext para obter mais informações e exemplos.
Consulte Usando DbContext com injeção de dependência e Usando fábricas DbContext para obter mais informações e exemplos.
Aplica-se a
AddDbContextFactory<TContext>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime)
Registra um IDbContextFactory<TContext> no IServiceCollection para criar instâncias de determinado DbContext tipo.
public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContextFactory<TContext> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> optionsAction = default, Microsoft.Extensions.DependencyInjection.ServiceLifetime lifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Singleton) where TContext : Microsoft.EntityFrameworkCore.DbContext;
public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContextFactory<TContext> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder>? optionsAction = default, Microsoft.Extensions.DependencyInjection.ServiceLifetime lifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Singleton) where TContext : Microsoft.EntityFrameworkCore.DbContext;
static member AddDbContextFactory : Microsoft.Extensions.DependencyInjection.IServiceCollection * Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> * Microsoft.Extensions.DependencyInjection.ServiceLifetime -> Microsoft.Extensions.DependencyInjection.IServiceCollection (requires 'Context :> Microsoft.EntityFrameworkCore.DbContext)
<Extension()>
Public Function AddDbContextFactory(Of TContext As DbContext) (serviceCollection As IServiceCollection, Optional optionsAction As Action(Of DbContextOptionsBuilder) = Nothing, Optional lifetime As ServiceLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Singleton) 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 opcional para configurar o DbContextOptions para o contexto. Isso fornece uma alternativa para executar a configuração do contexto substituindo o OnConfiguring(DbContextOptionsBuilder) método em seu contexto derivado.
Se uma ação for fornecida aqui, o OnConfiguring(DbContextOptionsBuilder) método ainda será executado se tiver sido substituído no contexto derivado. OnConfiguring(DbContextOptionsBuilder) A configuração será aplicada além da configuração executada aqui.
Para que as opções sejam passadas para o contexto, você precisa expor um construtor no contexto que o usa DbContextOptions<TContext> e passa para o construtor base de DbContext.
- lifetime
- ServiceLifetime
O tempo de vida com o qual registrar a fábrica e as opções. O padrão é Singleton
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.
Para conveniência, esse método também registra o próprio tipo de contexto como um serviço com escopo. Isso permite que uma instância de contexto seja resolvida de um escopo de injeção de dependência diretamente ou criada pela fábrica, conforme apropriado.
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 DbContext para obter mais informações e exemplos.
Consulte Usando DbContext com injeção de dependência e Usando fábricas DbContext para obter mais informações e exemplos.
Aplica-se a
AddDbContextFactory<TContext>(IServiceCollection, Action<IServiceProvider,DbContextOptionsBuilder>, ServiceLifetime)
Registra um IDbContextFactory<TContext> no IServiceCollection para criar instâncias de determinado DbContext tipo.
public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContextFactory<TContext> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<IServiceProvider,Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> optionsAction, Microsoft.Extensions.DependencyInjection.ServiceLifetime lifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Singleton) where TContext : Microsoft.EntityFrameworkCore.DbContext;
static member AddDbContextFactory : Microsoft.Extensions.DependencyInjection.IServiceCollection * Action<IServiceProvider, Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> * Microsoft.Extensions.DependencyInjection.ServiceLifetime -> Microsoft.Extensions.DependencyInjection.IServiceCollection (requires 'Context :> Microsoft.EntityFrameworkCore.DbContext)
<Extension()>
Public Function AddDbContextFactory(Of TContext As DbContext) (serviceCollection As IServiceCollection, optionsAction As Action(Of IServiceProvider, DbContextOptionsBuilder), Optional lifetime As ServiceLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Singleton) 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 opcional para configurar o DbContextOptions para o contexto. Isso fornece uma alternativa para executar a configuração do contexto substituindo o OnConfiguring(DbContextOptionsBuilder) método em seu contexto derivado.
Se uma ação for fornecida aqui, o OnConfiguring(DbContextOptionsBuilder) método ainda será executado se tiver sido substituído no contexto derivado. OnConfiguring(DbContextOptionsBuilder) A configuração será aplicada além da configuração executada aqui.
Para que as opções sejam passadas para o contexto, você precisa expor um construtor no contexto que o usa DbContextOptions<TContext> e passa para o construtor base de DbContext.
- lifetime
- ServiceLifetime
O tempo de vida com o qual registrar a fábrica e as opções. O padrão é Singleton
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.
Para conveniência, esse método também registra o próprio tipo de contexto como um serviço com escopo. Isso permite que uma instância de contexto seja resolvida de um escopo de injeção de dependência diretamente ou criada pela fábrica, conforme apropriado.
Essa sobrecarga tem um optionsAction
que fornece o do IServiceProvideraplicativo. Isso será útil se você quiser configurar o Entity Framework Core para resolve seus serviços internos do provedor de serviços de aplicativo primário. Por padrão, recomendamos usar AddDbContextFactory<TContext>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime) o que permite que o Entity Framework crie e mantenha o próprio IServiceProvider para serviços internos do Entity Framework.
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 DbContext para obter mais informações e exemplos.
Consulte Usando DbContext com injeção de dependência e Usando fábricas DbContext para obter mais informações e exemplos.
Aplica-se a
Entity Framework