EntityFrameworkServiceCollectionExtensions.AddDbContext Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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 |
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.