Compartir a través de


EntityFrameworkServiceCollectionExtensions.AddDbContext Método

Definición

Sobrecargas

AddDbContext<TContext>(IServiceCollection, ServiceLifetime)

Registra el contexto especificado como servicio en .IServiceCollection Este método se usa al usar la inserción de dependencias en la aplicación, como con ASP.NET. Para obtener más información sobre cómo configurar la inserción de dependencias, consulte http://go.microsoft.com/fwlink/?LinkId=526890.

AddDbContext<TContext>(IServiceCollection, ServiceLifetime, ServiceLifetime)

Registra el contexto especificado como servicio en .IServiceCollection

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

Registra el contexto especificado como servicio en .IServiceCollection Este método se usa al usar la inserción de dependencias en la aplicación, como con ASP.NET. Para obtener más información sobre cómo configurar la inserción de dependencias, consulte http://go.microsoft.com/fwlink/?LinkId=526890.

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

Registra el contexto especificado como servicio en .IServiceCollection Este método se usa al usar la inserción de dependencias en la aplicación, como con ASP.NET. Para obtener más información sobre cómo configurar la inserción de dependencias, consulte http://go.microsoft.com/fwlink/?LinkId=526890.

Esta sobrecarga tiene un objeto optionsAction que proporciona las aplicaciones IServiceProvider. Esto es útil si desea configurar Entity Framework para resolver sus servicios internos desde el proveedor de servicios de aplicaciones principal. De forma predeterminada, se recomienda usar la otra sobrecarga, lo que permite a Entity Framework crear y mantener sus propios IServiceProvider servicios internos de Entity Framework.

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

Registra el contexto especificado como servicio en .IServiceCollection

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

Registra el contexto especificado como servicio en .IServiceCollection

AddDbContext<TContextService,TContextImplementation>(IServiceCollection, ServiceLifetime, ServiceLifetime)

Registra el contexto especificado como servicio en .IServiceCollection

AddDbContext<TContextService,TContextImplementation>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime, ServiceLifetime)

Registra el contexto especificado como servicio en .IServiceCollection

AddDbContext<TContextService,TContextImplementation>(IServiceCollection, Action<IServiceProvider,DbContextOptionsBuilder>, ServiceLifetime, ServiceLifetime)

Registra el contexto especificado como servicio en .IServiceCollection

AddDbContext<TContext>(IServiceCollection, ServiceLifetime)

Registra el contexto especificado como servicio en .IServiceCollection Este método se usa al usar la inserción de dependencias en la aplicación, como con ASP.NET. Para obtener más información sobre cómo configurar la inserción de dependencias, consulte http://go.microsoft.com/fwlink/?LinkId=526890.

public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContext<TContext> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Microsoft.Extensions.DependencyInjection.ServiceLifetime contextLifetime) where TContext : Microsoft.EntityFrameworkCore.DbContext;
static member AddDbContext : Microsoft.Extensions.DependencyInjection.IServiceCollection * Microsoft.Extensions.DependencyInjection.ServiceLifetime -> Microsoft.Extensions.DependencyInjection.IServiceCollection (requires 'Context :> Microsoft.EntityFrameworkCore.DbContext)
<Extension()>
Public Function AddDbContext(Of TContext As DbContext) (serviceCollection As IServiceCollection, contextLifetime As ServiceLifetime) As IServiceCollection

Parámetros de tipo

TContext

Tipo de contexto que se va a registrar.

Parámetros

serviceCollection
IServiceCollection

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

contextLifetime
ServiceLifetime

Duración con la que se va a registrar el servicio DbContext en el contenedor.

Devoluciones

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

Ejemplos

public void ConfigureServices(IServiceCollection services) 
{
    var connectionString = "connection string to database";

    services.AddDbContext<MyContext>(ServiceLifetime.Scoped); 
}

Se aplica a

AddDbContext<TContext>(IServiceCollection, ServiceLifetime, ServiceLifetime)

Registra el contexto especificado como servicio en .IServiceCollection

public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContext<TContext> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Microsoft.Extensions.DependencyInjection.ServiceLifetime contextLifetime, Microsoft.Extensions.DependencyInjection.ServiceLifetime optionsLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped) where TContext : Microsoft.EntityFrameworkCore.DbContext;
static member AddDbContext : Microsoft.Extensions.DependencyInjection.IServiceCollection * Microsoft.Extensions.DependencyInjection.ServiceLifetime * Microsoft.Extensions.DependencyInjection.ServiceLifetime -> Microsoft.Extensions.DependencyInjection.IServiceCollection (requires 'Context :> Microsoft.EntityFrameworkCore.DbContext)
<Extension()>
Public Function AddDbContext(Of TContext As DbContext) (serviceCollection As IServiceCollection, contextLifetime As ServiceLifetime, Optional optionsLifetime As ServiceLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped) As IServiceCollection

Parámetros de tipo

TContext

Tipo de contexto que se va a registrar.

Parámetros

serviceCollection
IServiceCollection

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

contextLifetime
ServiceLifetime

Duración con la que se va a registrar el servicio DbContext en el contenedor.

optionsLifetime
ServiceLifetime

Duración con la que se va a registrar el servicio DbContextOptions en el contenedor.

Devoluciones

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

Ejemplos

public void ConfigureServices(IServiceCollection services)
{
    var connectionString = "connection string to database";

    services.AddDbContext<MyContext>(ServiceLifetime.Scoped);
}

Comentarios

Use este método al usar la inserción de dependencias en la aplicación, como con ASP.NET Core. 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.

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 para obtener más información y ejemplos.

Se aplica a

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

Registra el contexto especificado como servicio en .IServiceCollection Este método se usa al usar la inserción de dependencias en la aplicación, como con ASP.NET. Para obtener más información sobre cómo configurar la inserción de dependencias, consulte http://go.microsoft.com/fwlink/?LinkId=526890.

public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContext<TContext> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> optionsAction = default, Microsoft.Extensions.DependencyInjection.ServiceLifetime contextLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped) where TContext : Microsoft.EntityFrameworkCore.DbContext;
static member AddDbContext : Microsoft.Extensions.DependencyInjection.IServiceCollection * Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> * Microsoft.Extensions.DependencyInjection.ServiceLifetime -> Microsoft.Extensions.DependencyInjection.IServiceCollection (requires 'Context :> Microsoft.EntityFrameworkCore.DbContext)
<Extension()>
Public Function AddDbContext(Of TContext As DbContext) (serviceCollection As IServiceCollection, Optional optionsAction As Action(Of DbContextOptionsBuilder) = Nothing, Optional contextLifetime As ServiceLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped) As IServiceCollection

Parámetros de tipo

TContext

Tipo de contexto que se va a registrar.

Parámetros

serviceCollection
IServiceCollection

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

optionsAction
Action<DbContextOptionsBuilder>

Acción opcional para configurar para DbContextOptions el contexto. Esto proporciona una alternativa a realizar la configuración del contexto reemplazando 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 pasar las opciones al contexto, debe exponer un constructor en el contexto que toma DbContextOptions<TContext> y lo pasa al constructor base de DbContext.

contextLifetime
ServiceLifetime

Duración con la que se va a registrar el servicio DbContext en el contenedor.

Devoluciones

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

Ejemplos

public void ConfigureServices(IServiceCollection services) 
{
    var connectionString = "connection string to database";

    services.AddDbContext<MyContext>(options => options.UseSqlServer(connectionString)); 
}

Se aplica a

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

Registra el contexto especificado como servicio en .IServiceCollection Este método se usa al usar la inserción de dependencias en la aplicación, como con ASP.NET. Para obtener más información sobre cómo configurar la inserción de dependencias, consulte http://go.microsoft.com/fwlink/?LinkId=526890.

Esta sobrecarga tiene un objeto optionsAction que proporciona las aplicaciones IServiceProvider. Esto es útil si desea configurar Entity Framework para resolver sus servicios internos desde el proveedor de servicios de aplicaciones principal. De forma predeterminada, se recomienda usar la otra sobrecarga, lo que permite a Entity Framework crear y mantener sus propios IServiceProvider servicios internos de Entity Framework.

public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContext<TContext> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<IServiceProvider,Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> optionsAction, Microsoft.Extensions.DependencyInjection.ServiceLifetime contextLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped) where TContext : Microsoft.EntityFrameworkCore.DbContext;
static member AddDbContext : 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 AddDbContext(Of TContext As DbContext) (serviceCollection As IServiceCollection, optionsAction As Action(Of IServiceProvider, DbContextOptionsBuilder), Optional contextLifetime As ServiceLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped) As IServiceCollection

Parámetros de tipo

TContext

Tipo de contexto 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>

Acción opcional para configurar para DbContextOptions el contexto. Esto proporciona una alternativa a realizar la configuración del contexto reemplazando 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 pasar las opciones al contexto, debe exponer un constructor en el contexto que toma DbContextOptions<TContext> y lo pasa al constructor base de DbContext.

contextLifetime
ServiceLifetime

Duración con la que se va a registrar el servicio DbContext en el contenedor.

Devoluciones

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

Ejemplos

public void ConfigureServices(IServiceCollection services) 
{
    var connectionString = "connection string to database";

    services
        .AddEntityFrameworkSqlServer()
        .AddDbContext<MyContext>((serviceProvider, options) => 
            options.UseSqlServer(connectionString)
                   .UseInternalServiceProvider(serviceProvider)); 
}

Se aplica a

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

Registra el contexto dado como un servicio en .IServiceCollection

public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContext<TContext> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> optionsAction = default, Microsoft.Extensions.DependencyInjection.ServiceLifetime contextLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped, Microsoft.Extensions.DependencyInjection.ServiceLifetime optionsLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped) where TContext : Microsoft.EntityFrameworkCore.DbContext;
public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContext<TContext> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder>? optionsAction = default, Microsoft.Extensions.DependencyInjection.ServiceLifetime contextLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped, Microsoft.Extensions.DependencyInjection.ServiceLifetime optionsLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped) where TContext : Microsoft.EntityFrameworkCore.DbContext;
static member AddDbContext : Microsoft.Extensions.DependencyInjection.IServiceCollection * Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> * Microsoft.Extensions.DependencyInjection.ServiceLifetime * Microsoft.Extensions.DependencyInjection.ServiceLifetime -> Microsoft.Extensions.DependencyInjection.IServiceCollection (requires 'Context :> Microsoft.EntityFrameworkCore.DbContext)
<Extension()>
Public Function AddDbContext(Of TContext As DbContext) (serviceCollection As IServiceCollection, Optional optionsAction As Action(Of DbContextOptionsBuilder) = Nothing, Optional contextLifetime As ServiceLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped, Optional optionsLifetime As ServiceLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped) As IServiceCollection

Parámetros de tipo

TContext

Tipo de contexto que se va a registrar.

Parámetros

serviceCollection
IServiceCollection

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

optionsAction
Action<DbContextOptionsBuilder>

Acción opcional para configurar para DbContextOptions el contexto. Esto proporciona una alternativa a realizar la configuración del contexto reemplazando 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 pasar las opciones al contexto, debe exponer un constructor en el contexto que toma DbContextOptions<TContext> y lo pasa al constructor base de DbContext.

contextLifetime
ServiceLifetime

Duración con la que se va a registrar el servicio DbContext en el contenedor.

optionsLifetime
ServiceLifetime

Duración con la que se va a registrar el servicio DbContextOptions en el contenedor.

Devoluciones

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

Ejemplos

public void ConfigureServices(IServiceCollection services)
{
    var connectionString = "connection string to database";

    services.AddDbContext<MyContext>(options => options.UseSqlServer(connectionString));
}

Comentarios

Use este método al usar la inserción de dependencias en la aplicación, como con ASP.NET Core. 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.

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 para obtener más información y ejemplos.

Se aplica a

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

Registra el contexto dado como un servicio en .IServiceCollection

public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContext<TContext> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<IServiceProvider,Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> optionsAction, Microsoft.Extensions.DependencyInjection.ServiceLifetime contextLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped, Microsoft.Extensions.DependencyInjection.ServiceLifetime optionsLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped) where TContext : Microsoft.EntityFrameworkCore.DbContext;
public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContext<TContext> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<IServiceProvider,Microsoft.EntityFrameworkCore.DbContextOptionsBuilder>? optionsAction, Microsoft.Extensions.DependencyInjection.ServiceLifetime contextLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped, Microsoft.Extensions.DependencyInjection.ServiceLifetime optionsLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped) where TContext : Microsoft.EntityFrameworkCore.DbContext;
static member AddDbContext : Microsoft.Extensions.DependencyInjection.IServiceCollection * Action<IServiceProvider, Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> * Microsoft.Extensions.DependencyInjection.ServiceLifetime * Microsoft.Extensions.DependencyInjection.ServiceLifetime -> Microsoft.Extensions.DependencyInjection.IServiceCollection (requires 'Context :> Microsoft.EntityFrameworkCore.DbContext)
<Extension()>
Public Function AddDbContext(Of TContext As DbContext) (serviceCollection As IServiceCollection, optionsAction As Action(Of IServiceProvider, DbContextOptionsBuilder), Optional contextLifetime As ServiceLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped, Optional optionsLifetime As ServiceLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped) As IServiceCollection

Parámetros de tipo

TContext

Tipo de contexto 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.

contextLifetime
ServiceLifetime

Duración con la que se va a registrar el servicio DbContext en el contenedor.

optionsLifetime
ServiceLifetime

Duración con la que se va a registrar el servicio DbContextOptions en el contenedor.

Devoluciones

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

Ejemplos

public void ConfigureServices(IServiceCollection services)
{
    var connectionString = "connection string to database";

    services
        .AddEntityFrameworkSqlServer()
        .AddDbContext<MyContext>((serviceProvider, options) =>
            options.UseSqlServer(connectionString)
                   .UseInternalServiceProvider(serviceProvider));
}

Comentarios

Use este método al usar la inserción de dependencias en la aplicación, como con ASP.NET Core. 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.

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.

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 para obtener más información y ejemplos.

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 AddDbContext<TContext>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime, ServiceLifetime) , que permite a Entity Framework crear y mantener sus propios IServiceProvider servicios internos de Entity Framework.

Se aplica a

AddDbContext<TContextService,TContextImplementation>(IServiceCollection, ServiceLifetime, ServiceLifetime)

Registra el contexto dado como un servicio en .IServiceCollection

public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContext<TContextService,TContextImplementation> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Microsoft.Extensions.DependencyInjection.ServiceLifetime contextLifetime, Microsoft.Extensions.DependencyInjection.ServiceLifetime optionsLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped) where TContextService : class where TContextImplementation : Microsoft.EntityFrameworkCore.DbContext, TContextService;
static member AddDbContext : Microsoft.Extensions.DependencyInjection.IServiceCollection * Microsoft.Extensions.DependencyInjection.ServiceLifetime * Microsoft.Extensions.DependencyInjection.ServiceLifetime -> Microsoft.Extensions.DependencyInjection.IServiceCollection (requires 'ContextService : null and 'ContextImplementation :> Microsoft.EntityFrameworkCore.DbContext and 'ContextImplementation :> 'ContextService)
<Extension()>
Public Function AddDbContext(Of TContextService As Class, TContextImplementation As Class) (serviceCollection As IServiceCollection, contextLifetime As ServiceLifetime, Optional optionsLifetime As ServiceLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped) As IServiceCollection

Parámetros de tipo

TContextService

Clase o interfaz que se usará para resolver el contexto del contenedor.

TContextImplementation

Tipo de implementación concreto que se va a crear.

Parámetros

serviceCollection
IServiceCollection

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

contextLifetime
ServiceLifetime

Duración con la que se va a registrar el servicio DbContext en el contenedor.

optionsLifetime
ServiceLifetime

Duración con la que se va a registrar el servicio DbContextOptions en el contenedor.

Devoluciones

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

Ejemplos

public void ConfigureServices(IServiceCollection services)
{
    var connectionString = "connection string to database";

    services.AddDbContext<MyContext>(ServiceLifetime.Scoped);
}

Comentarios

Use este método al usar la inserción de dependencias en la aplicación, como con ASP.NET Core. 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.

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 para obtener más información y ejemplos.

Se aplica a

AddDbContext<TContextService,TContextImplementation>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime, ServiceLifetime)

Registra el contexto dado como un servicio en .IServiceCollection

public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContext<TContextService,TContextImplementation> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> optionsAction = default, Microsoft.Extensions.DependencyInjection.ServiceLifetime contextLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped, Microsoft.Extensions.DependencyInjection.ServiceLifetime optionsLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped) where TContextImplementation : Microsoft.EntityFrameworkCore.DbContext, TContextService;
public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContext<TContextService,TContextImplementation> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder>? optionsAction = default, Microsoft.Extensions.DependencyInjection.ServiceLifetime contextLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped, Microsoft.Extensions.DependencyInjection.ServiceLifetime optionsLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped) where TContextImplementation : Microsoft.EntityFrameworkCore.DbContext, TContextService;
static member AddDbContext : Microsoft.Extensions.DependencyInjection.IServiceCollection * Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> * Microsoft.Extensions.DependencyInjection.ServiceLifetime * Microsoft.Extensions.DependencyInjection.ServiceLifetime -> Microsoft.Extensions.DependencyInjection.IServiceCollection (requires 'ContextImplementation :> Microsoft.EntityFrameworkCore.DbContext and 'ContextImplementation :> 'ContextService)
<Extension()>
Public Function AddDbContext(Of TContextService, TContextImplementation) (serviceCollection As IServiceCollection, Optional optionsAction As Action(Of DbContextOptionsBuilder) = Nothing, Optional contextLifetime As ServiceLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped, Optional optionsLifetime As ServiceLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped) As IServiceCollection

Parámetros de tipo

TContextService

Clase o interfaz que se usará para resolver el contexto del contenedor.

TContextImplementation

Tipo de implementación concreto que se va a crear.

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.

contextLifetime
ServiceLifetime

Duración con la que se va a registrar el servicio DbContext en el contenedor.

optionsLifetime
ServiceLifetime

Duración con la que se va a registrar el servicio DbContextOptions en el contenedor.

Devoluciones

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

Ejemplos

public void ConfigureServices(IServiceCollection services)
{
    var connectionString = "connection string to database";

    services.AddDbContext<MyContext>(options => options.UseSqlServer(connectionString));
}

Comentarios

Use este método al usar la inserción de dependencias en la aplicación, como con ASP.NET Core. 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.

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 para obtener más información y ejemplos.

Se aplica a

AddDbContext<TContextService,TContextImplementation>(IServiceCollection, Action<IServiceProvider,DbContextOptionsBuilder>, ServiceLifetime, ServiceLifetime)

Registra el contexto dado como un servicio en .IServiceCollection

public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContext<TContextService,TContextImplementation> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<IServiceProvider,Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> optionsAction, Microsoft.Extensions.DependencyInjection.ServiceLifetime contextLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped, Microsoft.Extensions.DependencyInjection.ServiceLifetime optionsLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped) where TContextImplementation : Microsoft.EntityFrameworkCore.DbContext, TContextService;
public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContext<TContextService,TContextImplementation> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<IServiceProvider,Microsoft.EntityFrameworkCore.DbContextOptionsBuilder>? optionsAction, Microsoft.Extensions.DependencyInjection.ServiceLifetime contextLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped, Microsoft.Extensions.DependencyInjection.ServiceLifetime optionsLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped) where TContextImplementation : Microsoft.EntityFrameworkCore.DbContext, TContextService;
static member AddDbContext : Microsoft.Extensions.DependencyInjection.IServiceCollection * Action<IServiceProvider, Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> * Microsoft.Extensions.DependencyInjection.ServiceLifetime * Microsoft.Extensions.DependencyInjection.ServiceLifetime -> Microsoft.Extensions.DependencyInjection.IServiceCollection (requires 'ContextImplementation :> Microsoft.EntityFrameworkCore.DbContext and 'ContextImplementation :> 'ContextService)
<Extension()>
Public Function AddDbContext(Of TContextService, TContextImplementation) (serviceCollection As IServiceCollection, optionsAction As Action(Of IServiceProvider, DbContextOptionsBuilder), Optional contextLifetime As ServiceLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped, Optional optionsLifetime As ServiceLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped) As IServiceCollection

Parámetros de tipo

TContextService

Clase o interfaz que se usará para resolver el contexto del contenedor.

TContextImplementation

Tipo de implementación concreto que se va a crear.

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.

contextLifetime
ServiceLifetime

Duración con la que se va a registrar el servicio DbContext en el contenedor.

optionsLifetime
ServiceLifetime

Duración con la que se va a registrar el servicio DbContextOptions en el contenedor.

Devoluciones

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

Ejemplos

public void ConfigureServices(IServiceCollection services)
{
    var connectionString = "connection string to database";

    services
        .AddEntityFrameworkSqlServer()
        .AddDbContext<MyContext>((serviceProvider, options) =>
            options.UseSqlServer(connectionString)
                   .UseInternalServiceProvider(serviceProvider));
}

Comentarios

Use este método al usar la inserción de dependencias en la aplicación, como con ASP.NET Core. 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.

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 para obtener más información y ejemplos.

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 AddDbContext<TContextService,TContextImplementation>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime, ServiceLifetime) , que permite a Entity Framework crear y mantener sus propios IServiceProvider servicios internos de Entity Framework.

Se aplica a