Share via


EntityFrameworkServiceCollectionExtensions.AddDbContextFactory Método

Definición

Sobrecargas

AddDbContextFactory<TContext,TFactory>(IServiceCollection, Action<IServiceProvider,DbContextOptionsBuilder>, ServiceLifetime)

Registra en IDbContextFactory<TContext> para IServiceCollection crear instancias de un tipo determinado DbContext .

AddDbContextFactory<TContext,TFactory>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime)

Registra en IDbContextFactory<TContext> para IServiceCollection crear instancias de un tipo determinado DbContext .

AddDbContextFactory<TContext>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime)

Registra en IDbContextFactory<TContext> para IServiceCollection crear instancias de un tipo determinado DbContext .

AddDbContextFactory<TContext>(IServiceCollection, Action<IServiceProvider,DbContextOptionsBuilder>, ServiceLifetime)

Registra en IDbContextFactory<TContext> para IServiceCollection crear instancias de un tipo determinado DbContext .

AddDbContextFactory<TContext,TFactory>(IServiceCollection, Action<IServiceProvider,DbContextOptionsBuilder>, ServiceLifetime)

Registra en IDbContextFactory<TContext> para IServiceCollection crear instancias de un tipo determinado DbContext .

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

Tipo de que DbContext va a crear la fábrica.

TFactory

Tipo de IDbContextFactory<TContext> que se va a registrar.

Parámetros

serviceCollection
IServiceCollection

La interfaz IServiceCollection a la que se van a agregar los servicios.

optionsAction
Action<IServiceProvider,DbContextOptionsBuilder>

Una acción opcional para configurar para DbContextOptions el contexto. Esto proporciona una alternativa a realizar la configuración del contexto invalidando el método en el OnConfiguring(DbContextOptionsBuilder) contexto derivado.

Si se proporciona una acción aquí, el OnConfiguring(DbContextOptionsBuilder) método se seguirá ejecutando si se ha invalidado en el contexto derivado. OnConfiguring(DbContextOptionsBuilder) la configuración se aplicará además de la configuración realizada aquí.

Para que las opciones se pasen al contexto, debe exponer un constructor en el contexto que toma DbContextOptions<TContext> y lo pasa al constructor base de DbContext.

lifetime
ServiceLifetime

Duración con la que se va a registrar la fábrica y las opciones. El valor predeterminado es Singleton.

Devoluciones

La misma colección de servicios para que se puedan encadenar varias llamadas.

Comentarios

Registrar una fábrica en lugar de registrar el tipo de contexto directamente permite crear fácilmente nuevas DbContext instancias. Se recomienda registrar un generador para las aplicaciones Blazor y otras situaciones en las que el ámbito de inserción de dependencias no está alineado con la duración del contexto.

Use este método al usar la inserción de dependencias en la aplicación, como con Blazor. En el caso de las aplicaciones que no usan la inserción de dependencias, considere la posibilidad de crear DbContext instancias directamente con su constructor. A OnConfiguring(DbContextOptionsBuilder) continuación, el método se puede invalidar para configurar una cadena de conexión y otras opciones.

Por comodidad, este método también registra el propio tipo de contexto como un servicio con ámbito. Esto permite resolver una instancia de contexto desde un ámbito de inserción de dependencias directamente o creado por el generador, según corresponda.

Esta sobrecarga permite registrar una implementación específica de IDbContextFactory<TContext> en lugar de usar la fábrica predeterminada enviada con EF Core.

Esta sobrecarga tiene un optionsAction objeto que proporciona la aplicación IServiceProvider. Esto resulta útil si desea configurar Entity Framework Core para resolver sus servicios internos desde el proveedor de servicios de aplicación principal. De forma predeterminada, se recomienda usar AddDbContextFactory<TContext>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime) , que permite a Entity Framework crear y mantener sus propios IServiceProvider servicios internos de Entity Framework.

Entity Framework Core no admite que varias operaciones en paralelo se ejecuten en la misma instancia de DbContext. Esto incluye la ejecución en paralelo de consultas asincrónicas y cualquier uso simultáneo explícito desde varios subprocesos. Por lo tanto, espere siempre llamadas asincrónicas inmediatamente o use instancias de DbContext independientes para las operaciones que se ejecutan en paralelo. Consulte Evitar problemas de subprocesos de DbContext para obtener más información y ejemplos.

Consulte Uso de DbContext con inserción de dependencias y Uso de generadores de DbContext para obtener más información y ejemplos.

Se aplica a

AddDbContextFactory<TContext,TFactory>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime)

Registra en IDbContextFactory<TContext> para IServiceCollection crear instancias de un tipo determinado DbContext .

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

Tipo de que DbContext va a crear la fábrica.

TFactory

Tipo de IDbContextFactory<TContext> que se va a registrar.

Parámetros

serviceCollection
IServiceCollection

La interfaz IServiceCollection a la que se van a agregar los servicios.

optionsAction
Action<DbContextOptionsBuilder>

Una acción opcional para configurar para DbContextOptions el contexto. Esto proporciona una alternativa a realizar la configuración del contexto invalidando el método en el OnConfiguring(DbContextOptionsBuilder) contexto derivado.

Si se proporciona una acción aquí, el OnConfiguring(DbContextOptionsBuilder) método se seguirá ejecutando si se ha invalidado en el contexto derivado. OnConfiguring(DbContextOptionsBuilder) la configuración se aplicará además de la configuración realizada aquí.

Para que las opciones se pasen al contexto, debe exponer un constructor en el contexto que toma DbContextOptions<TContext> y lo pasa al constructor base de DbContext.

lifetime
ServiceLifetime

Duración con la que se va a registrar la fábrica y las opciones. El valor predeterminado es Singleton.

Devoluciones

La misma colección de servicios para que se puedan encadenar varias llamadas.

Comentarios

Registrar una fábrica en lugar de registrar el tipo de contexto directamente permite crear fácilmente nuevas DbContext instancias. Se recomienda registrar un generador para las aplicaciones Blazor y otras situaciones en las que el ámbito de inserción de dependencias no está alineado con la duración del contexto.

Use este método al usar la inserción de dependencias en la aplicación, como con Blazor. En el caso de las aplicaciones que no usan la inserción de dependencias, considere la posibilidad de crear DbContext instancias directamente con su constructor. A OnConfiguring(DbContextOptionsBuilder) continuación, el método se puede invalidar para configurar una cadena de conexión y otras opciones.

Por comodidad, este método también registra el propio tipo de contexto como un servicio con ámbito. Esto permite resolver una instancia de contexto desde un ámbito de inserción de dependencias directamente o creado por el generador, según corresponda.

Esta sobrecarga permite registrar una implementación específica de IDbContextFactory<TContext> en lugar de usar la fábrica predeterminada enviada con EF Core.

Entity Framework Core no admite que varias operaciones en paralelo se ejecuten en la misma instancia de DbContext. Esto incluye la ejecución en paralelo de consultas asincrónicas y cualquier uso simultáneo explícito desde varios subprocesos. Por lo tanto, espere siempre llamadas asincrónicas inmediatamente o use instancias de DbContext independientes para las operaciones que se ejecutan en paralelo. Consulte Evitar problemas de subprocesos de DbContext para obtener más información y ejemplos.

Consulte Uso de DbContext con inserción de dependencias y Uso de generadores de DbContext para obtener más información y ejemplos.

Se aplica a

AddDbContextFactory<TContext>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime)

Registra en IDbContextFactory<TContext> para IServiceCollection crear instancias de un tipo determinado 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;
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

Tipo de que DbContext va a crear la fábrica.

Parámetros

serviceCollection
IServiceCollection

La interfaz IServiceCollection a la que se van a agregar los servicios.

optionsAction
Action<DbContextOptionsBuilder>

Una acción opcional para configurar para DbContextOptions el contexto. Esto proporciona una alternativa a realizar la configuración del contexto invalidando el método en el OnConfiguring(DbContextOptionsBuilder) contexto derivado.

Si se proporciona una acción aquí, el OnConfiguring(DbContextOptionsBuilder) método se seguirá ejecutando si se ha invalidado en el contexto derivado. OnConfiguring(DbContextOptionsBuilder) la configuración se aplicará además de la configuración realizada aquí.

Para que las opciones se pasen al contexto, debe exponer un constructor en el contexto que toma DbContextOptions<TContext> y lo pasa al constructor base de DbContext.

lifetime
ServiceLifetime

Duración con la que se va a registrar la fábrica y las opciones. El valor predeterminado es Singleton.

Devoluciones

La misma colección de servicios para que se puedan encadenar varias llamadas.

Comentarios

Registrar una fábrica en lugar de registrar el tipo de contexto directamente permite crear fácilmente nuevas DbContext instancias. Se recomienda registrar un generador para las aplicaciones Blazor y otras situaciones en las que el ámbito de inserción de dependencias no está alineado con la duración del contexto.

Use este método al usar la inserción de dependencias en la aplicación, como con Blazor. En el caso de las aplicaciones que no usan la inserción de dependencias, considere la posibilidad de crear DbContext instancias directamente con su constructor. A OnConfiguring(DbContextOptionsBuilder) continuación, el método se puede invalidar para configurar una cadena de conexión y otras opciones.

Por comodidad, este método también registra el propio tipo de contexto como un servicio con ámbito. Esto permite resolver una instancia de contexto desde un ámbito de inserción de dependencias directamente o creado por el generador, según corresponda.

Entity Framework Core no admite que varias operaciones en paralelo se ejecuten en la misma instancia de DbContext. Esto incluye la ejecución en paralelo de consultas asincrónicas y cualquier uso simultáneo explícito desde varios subprocesos. Por lo tanto, espere siempre llamadas asincrónicas inmediatamente o use instancias de DbContext independientes para las operaciones que se ejecutan en paralelo. Consulte Evitar problemas de subprocesos de DbContext para obtener más información y ejemplos.

Consulte Uso de DbContext con inserción de dependencias y Uso de generadores de DbContext para obtener más información y ejemplos.

Se aplica a

AddDbContextFactory<TContext>(IServiceCollection, Action<IServiceProvider,DbContextOptionsBuilder>, ServiceLifetime)

Registra en IDbContextFactory<TContext> para IServiceCollection crear instancias de un tipo determinado DbContext .

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

Tipo de que DbContext va a crear la fábrica.

Parámetros

serviceCollection
IServiceCollection

La interfaz IServiceCollection a la que se van a agregar los servicios.

optionsAction
Action<IServiceProvider,DbContextOptionsBuilder>

Una acción opcional para configurar para DbContextOptions el contexto. Esto proporciona una alternativa a realizar la configuración del contexto invalidando el método en el OnConfiguring(DbContextOptionsBuilder) contexto derivado.

Si se proporciona una acción aquí, el OnConfiguring(DbContextOptionsBuilder) método se seguirá ejecutando si se ha invalidado en el contexto derivado. OnConfiguring(DbContextOptionsBuilder) la configuración se aplicará además de la configuración realizada aquí.

Para que las opciones se pasen al contexto, debe exponer un constructor en el contexto que toma DbContextOptions<TContext> y lo pasa al constructor base de DbContext.

lifetime
ServiceLifetime

Duración con la que se va a registrar la fábrica y las opciones. El valor predeterminado es Singleton.

Devoluciones

La misma colección de servicios para que se puedan encadenar varias llamadas.

Comentarios

Registrar una fábrica en lugar de registrar el tipo de contexto directamente permite crear fácilmente nuevas DbContext instancias. Se recomienda registrar un generador para las aplicaciones Blazor y otras situaciones en las que el ámbito de inserción de dependencias no está alineado con la duración del contexto.

Use este método al usar la inserción de dependencias en la aplicación, como con Blazor. En el caso de las aplicaciones que no usan la inserción de dependencias, considere la posibilidad de crear DbContext instancias directamente con su constructor. A OnConfiguring(DbContextOptionsBuilder) continuación, el método se puede invalidar para configurar una cadena de conexión y otras opciones.

Por comodidad, este método también registra el propio tipo de contexto como un servicio con ámbito. Esto permite resolver una instancia de contexto desde un ámbito de inserción de dependencias directamente o creado por el generador, según corresponda.

Esta sobrecarga tiene un optionsAction objeto que proporciona la aplicación IServiceProvider. Esto resulta útil si desea configurar Entity Framework Core para resolver sus servicios internos desde el proveedor de servicios de aplicación principal. De forma predeterminada, se recomienda usar AddDbContextFactory<TContext>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime) , que permite a Entity Framework crear y mantener sus propios IServiceProvider servicios internos de Entity Framework.

Entity Framework Core no admite que varias operaciones en paralelo se ejecuten en la misma instancia de DbContext. Esto incluye la ejecución en paralelo de consultas asincrónicas y cualquier uso simultáneo explícito desde varios subprocesos. Por lo tanto, espere siempre llamadas asincrónicas inmediatamente o use instancias de DbContext independientes para las operaciones que se ejecutan en paralelo. Consulte Evitar problemas de subprocesos de DbContext para obtener más información y ejemplos.

Consulte Uso de DbContext con inserción de dependencias y Uso de generadores de DbContext para obtener más información y ejemplos.

Se aplica a