Lenguaje

DbContextOptionsBuilder Clase

Definición

Proporciona una superficie de API sencilla para configurar DbContextOptions. Las bases de datos (y otras extensiones) suelen definir métodos de extensión en este objeto que permiten configurar la conexión de base de datos (y otras opciones) que se usarán para un contexto.

public class DbContextOptionsBuilder : Microsoft.EntityFrameworkCore.Infrastructure.IDbContextOptionsBuilderInfrastructure
[System.Runtime.CompilerServices.Nullable(0)]
public class DbContextOptionsBuilder : Microsoft.EntityFrameworkCore.Infrastructure.IDbContextOptionsBuilderInfrastructure
type DbContextOptionsBuilder = class
    interface IDbContextOptionsBuilderInfrastructure
[<System.Runtime.CompilerServices.Nullable(0)>]
type DbContextOptionsBuilder = class
    interface IDbContextOptionsBuilderInfrastructure
Public Class DbContextOptionsBuilder
Implements IDbContextOptionsBuilderInfrastructure
Herencia
DbContextOptionsBuilder
Derivado
Atributos
Implementaciones

Comentarios

Puede usar DbContextOptionsBuilder para configurar un contexto invalidando OnConfiguring(DbContextOptionsBuilder) o creando un elemento DbContextOptions externamente y pasándolo al constructor de contexto.

Consulte Uso de DbContextOptions para obtener más información y ejemplos.

Constructores

Nombre Description
DbContextOptionsBuilder()

Inicializa una nueva instancia de la DbContextOptionsBuilder clase sin ningún conjunto de opciones.

DbContextOptionsBuilder(DbContextOptions)

Inicializa una nueva instancia de la DbContextOptionsBuilder clase para configurar aún más un determinado DbContextOptions.

Propiedades

Nombre Description
IsConfigured

Obtiene un valor que indica si se han configurado opciones.

Options

Obtiene las opciones que se configuran.

Métodos

Nombre Description
AddInterceptors(IEnumerable<IInterceptor>)

Agrega IInterceptor instancias a las registradas en el contexto.

AddInterceptors(IInterceptor[])

Agrega IInterceptor instancias a las registradas en el contexto.

ConfigureLoggingCacheTime(TimeSpan)

Configura cuánto tiempo EF Core almacenará en caché la configuración de registro en determinadas rutas de acceso de alto rendimiento. Esto hace que EF Core omita las comprobaciones de registro potencialmente costosas, pero significa que los cambios de registro en tiempo de ejecución (por ejemplo, el registro de un nuevo DiagnosticListener no se puede tener en cuenta inmediatamente).

ConfigureWarnings(Action<WarningsConfigurationBuilder>)

Configura el comportamiento en tiempo de ejecución de las advertencias generadas por Entity Framework. Puede establecer un comportamiento y comportamientos predeterminados para cada tipo de advertencia.

ConfigureWarnings(Action<WarningsConfigurationBuilder>)

Configura el comportamiento en tiempo de ejecución de las advertencias generadas por Entity Framework. Puede establecer un comportamiento y comportamientos predeterminados para cada tipo de advertencia.

EnableDetailedErrors(Boolean)

Habilita errores detallados al controlar excepciones de valor de datos que se producen durante el procesamiento de los resultados de la consulta del almacén. Estos errores suelen producirse debido a errores de configuración de las propiedades de entidad. Por ejemplo, si una propiedad está configurada para ser de tipo 'int', pero los datos subyacentes del almacén son realmente de tipo 'string', se generará una excepción en tiempo de ejecución durante el procesamiento del valor de datos. Cuando esta opción está habilitada y se produce un error de datos, la excepción generada incluirá detalles de la propiedad de entidad específica que generó el error.

EnableSensitiveDataLogging()

Permite que los datos de la aplicación se incluyan en mensajes de excepción, registro, etc. Esto puede incluir los valores asignados a las propiedades de las instancias de entidad, los valores de parámetro para los comandos que se envían a la base de datos y otros datos de este tipo. Solo debe habilitar esta marca si tiene las medidas de seguridad adecuadas en función de la confidencialidad de estos datos.

EnableSensitiveDataLogging(Boolean)

Permite que los datos de la aplicación se incluyan en mensajes de excepción, registro, etc. Esto puede incluir los valores asignados a las propiedades de las instancias de entidad, los valores de parámetro para los comandos que se envían a la base de datos y otros datos de este tipo. Solo debe habilitar esta marca si tiene las medidas de seguridad adecuadas en función de la confidencialidad de estos datos.

EnableServiceProviderCaching(Boolean)

Habilita o deshabilita el almacenamiento en caché de proveedores de servicios internos. Deshabilitar el almacenamiento en caché puede afectar enormemente al rendimiento y solo debe usarse en escenarios de prueba que compilan muchos proveedores de servicios para el aislamiento de pruebas.

EnableThreadSafetyChecks(Boolean)

Deshabilita la detección de simultaneidad, que detecta muchos casos de uso simultáneo erróneo de una DbContext instancia y hace que se produzca una excepción informativa. Esto proporciona una mejora de rendimiento menor, pero si se usa una DbContext instancia simultáneamente, el comportamiento no se definirá y el programa puede producir errores de maneras impredecibles.

LogTo(Action<String>, Func<EventId,LogLevel,Boolean>, Nullable<DbContextLoggerOptions>)

Registra eventos filtrados por un delegado de filtro personalizado proporcionado. El filtro debe devolver true para registrar un mensaje o false para filtrarlo fuera del registro.

LogTo(Action<String>, IEnumerable<EventId>, LogLevel, Nullable<DbContextLoggerOptions>)

Registra los eventos especificados mediante la acción proporcionada. Por ejemplo, use optionsBuilder.LogTo(Console.WriteLine, new[] { CoreEventId.ContextInitialized }) para registrar el ContextInitialized evento en la consola.

LogTo(Action<String>, IEnumerable<String>, LogLevel, Nullable<DbContextLoggerOptions>)

Registra todos los eventos de las categorías especificadas mediante la acción proporcionada. Por ejemplo, use optionsBuilder.LogTo(Console.WriteLine, new[] { DbLoggerCategory.Infrastructure.Name }) para registrar todos los eventos de la DbLoggerCategory.Infrastructure categoría.

LogTo(Action<String>, LogLevel, Nullable<DbContextLoggerOptions>)

Registra mediante la acción proporcionada. Por ejemplo, use optionsBuilder.LogTo(Console.WriteLine) para iniciar sesión en la consola.

LogTo(Func<EventId,LogLevel,Boolean>, Action<EventData>)

Registra eventos en un delegado de registrador personalizado filtrado por un delegado de filtro personalizado. El filtro debe devolver true para registrar un mensaje o false para filtrarlo fuera del registro.

ReplaceService<TService,TCurrentImplementation,TNewImplementation>()

Reemplaza la implementación interna de Entity Framework de una implementación específica de un contrato de servicio por una implementación diferente.

ReplaceService<TService,TImplementation>()

Reemplaza todas las implementaciones internas de Entity Framework de un contrato de servicio por una implementación diferente.

UseApplicationServiceProvider(IServiceProvider)

Establece el desde el IServiceProvider que se obtendrán los servicios de aplicación. Esto se hace automáticamente cuando se usa "AddDbContext" o "AddDbContextPool", por lo que es raro que se deba llamar a este método.

UseAsyncSeeding(Func<DbContext,Boolean,CancellationToken,Task>)

Configura el método de inicialización para que se ejecute después EnsureCreatedAsync(CancellationToken) de llamar a o después de que las migraciones se apliquen de forma asincrónica. Se invocará incluso si no se realizaron cambios en el almacén.

UseInternalServiceProvider(IServiceProvider)

Establece desde el IServiceProvider que el contexto debe resolver todos sus servicios. EF creará y administrará un proveedor de servicios si no se especifica ninguno.

UseLoggerFactory(ILoggerFactory)

Establece que ILoggerFactory se usará para crear ILogger instancias de registro realizadas por este contexto.

UseMemoryCache(IMemoryCache)

Establece el objeto que se usará para el IMemoryCache almacenamiento en caché de consultas en este contexto.

UseModel(IModel)

Establece el modelo que se va a usar para el contexto. Si se establece el modelo, OnModelCreating(ModelBuilder) no se ejecutará.

UseQueryTrackingBehavior(QueryTrackingBehavior)

Establece el comportamiento de seguimiento de las consultas LINQ que se ejecutan en el contexto. Deshabilitar el seguimiento de cambios es útil para escenarios de solo lectura, ya que evita la sobrecarga de configurar el seguimiento de cambios para cada instancia de entidad. No debe deshabilitar el seguimiento de cambios si desea manipular instancias de entidad y conservar esos cambios en la base de datos mediante SaveChanges().

UseRootApplicationServiceProvider()

Resuelve la raíz IServiceProvider del proveedor de servicios de aplicaciones con ámbito. El proveedor raíz se puede usar para obtener servicios de aplicación singleton de servicios internos singleton.

UseRootApplicationServiceProvider(IServiceProvider)

Establece la raíz IServiceProvider desde la que se pueden obtener los servicios de aplicación singleton de los servicios internos singleton.

UseSeeding(Action<DbContext,Boolean>)

Configura el método de inicialización para que se ejecute después EnsureCreated() de llamar a o después de aplicar las migraciones. Se invocará incluso si no se realizaron cambios en el almacén.

Implementaciones de interfaz explícitas

Nombre Description
IDbContextOptionsBuilderInfrastructure.AddOrUpdateExtension<TExtension>(TExtension)

Agrega la extensión dada a las opciones. Si ya existe una extensión existente del mismo tipo, se reemplazará.

IDbContextOptionsBuilderInfrastructure.RemoveExtension<TExtension>()

Quita la extensión del tipo especificado de las opciones. Si no existe ninguna extensión del tipo especificado, se trata de un no-op.

Métodos de extensión

Nombre Description
ConfigureSqlEngine(DbContextOptionsBuilder, Action<SqlEngineDbContextOptionsBuilder>)

Configura el contexto para conectarse a cualquiera de SQL Server, Azure SQL, Azure Synapse bases de datos, pero sin establecer inicialmente ninguna DbConnection o cadena de conexión.

UseAzureSql(DbContextOptionsBuilder, Action<AzureSqlDbContextOptionsBuilder>)

Configura el contexto para conectarse a una base de datos de Azure SQL, pero sin establecer inicialmente ninguna DbConnection o cadena de conexión.

UseAzureSql(DbContextOptionsBuilder, DbConnection, Action<AzureSqlDbContextOptionsBuilder>)

Configura el contexto para conectarse a una base de datos de Azure SQL.

UseAzureSql(DbContextOptionsBuilder, DbConnection, Boolean, Action<AzureSqlDbContextOptionsBuilder>)

Configura el contexto para conectarse a una base de datos de Azure SQL.

UseAzureSql(DbContextOptionsBuilder, String, Action<AzureSqlDbContextOptionsBuilder>)

Configura el contexto para conectarse a una base de datos de Azure SQL.

UseAzureSynapse(DbContextOptionsBuilder, Action<AzureSynapseDbContextOptionsBuilder>)

Configura el contexto para conectarse a una base de datos de Azure Synapse, pero sin establecer inicialmente ninguna DbConnection o cadena de conexión.

UseAzureSynapse(DbContextOptionsBuilder, DbConnection, Action<AzureSynapseDbContextOptionsBuilder>)

Configura el contexto para conectarse a una base de datos de Azure Synapse.

UseAzureSynapse(DbContextOptionsBuilder, DbConnection, Boolean, Action<AzureSynapseDbContextOptionsBuilder>)

Configura el contexto para conectarse a una base de datos de Azure Synapse.

UseAzureSynapse(DbContextOptionsBuilder, String, Action<AzureSynapseDbContextOptionsBuilder>)

Configura el contexto para conectarse a una base de datos de Azure Synapse.

UseChangeTrackingProxies(DbContextOptionsBuilder, Boolean, Boolean)

Activa la creación de servidores proxy de seguimiento de cambios.

UseCosmos(DbContextOptionsBuilder, Action<CosmosDbContextOptionsBuilder>)

Configura el contexto para conectarse a una base de datos de Azure Cosmos. Los detalles de conexión deben especificarse en una llamada independiente.

UseCosmos(DbContextOptionsBuilder, String, String, Action<CosmosDbContextOptionsBuilder>)

Configura el contexto para conectarse a una base de datos de Azure Cosmos.

UseCosmos(DbContextOptionsBuilder, String, String, String, Action<CosmosDbContextOptionsBuilder>)

Configura el contexto para conectarse a una base de datos de Azure Cosmos.

UseCosmos(DbContextOptionsBuilder, String, TokenCredential, String, Action<CosmosDbContextOptionsBuilder>)

Configura el contexto para conectarse a una base de datos de Azure Cosmos.

UseInMemoryDatabase(DbContextOptionsBuilder, Action<InMemoryDbContextOptionsBuilder>)
Obsoletos.
Obsoletos.

Configura el contexto para conectarse a la base de datos compartida heredada en memoria. Este método está obsoleto. Utilice UseInMemoryDatabase(DbContextOptionsBuilder, String, Action<InMemoryDbContextOptionsBuilder>) en su lugar.

UseInMemoryDatabase(DbContextOptionsBuilder, String, Action<InMemoryDbContextOptionsBuilder>)

Configura el contexto para conectarse a una base de datos con nombre en memoria. La base de datos en memoria se comparte en cualquier lugar donde se use el mismo nombre, pero solo para un proveedor de servicios determinado. Para usar la misma base de datos en memoria entre proveedores de servicios, llame a UseInMemoryDatabase(DbContextOptionsBuilder, String, InMemoryDatabaseRoot, Action<InMemoryDbContextOptionsBuilder>) pasando un recurso compartido InMemoryDatabaseRoot en el que se va a raíz la base de datos.

UseInMemoryDatabase(DbContextOptionsBuilder, String, InMemoryDatabaseRoot, Action<InMemoryDbContextOptionsBuilder>)

Configura el contexto para conectarse a una base de datos con nombre en memoria. La base de datos en memoria se comparte en cualquier lugar donde se use el mismo nombre, pero solo para un proveedor de servicios determinado.

UseLazyLoadingProxies(DbContextOptionsBuilder, Action<LazyLoadingProxiesOptionsBuilder>)

Activa la creación de servidores proxy de carga diferida.

UseLazyLoadingProxies(DbContextOptionsBuilder, Boolean)

Activa la creación de servidores proxy de carga diferida.

UseSqlite(DbContextOptionsBuilder, Action<SqliteDbContextOptionsBuilder>)

Configura el contexto para conectarse a una base de datos de SQLite, pero sin establecer inicialmente ninguna DbConnection o cadena de conexión.

UseSqlite(DbContextOptionsBuilder, DbConnection, Action<SqliteDbContextOptionsBuilder>)

Configura el contexto para conectarse a una base de datos de SQLite.

UseSqlite(DbContextOptionsBuilder, DbConnection, Boolean, Action<SqliteDbContextOptionsBuilder>)

Configura el contexto para conectarse a una base de datos de SQLite.

UseSqlite(DbContextOptionsBuilder, String, Action<SqliteDbContextOptionsBuilder>)

Configura el contexto para conectarse a una base de datos de SQLite.

UseSqlServer(DbContextOptionsBuilder, Action<SqlServerDbContextOptionsBuilder>)

Configura el contexto para conectarse a una base de datos de SQL Server, pero sin establecer inicialmente ninguna DbConnection o cadena de conexión.

UseSqlServer(DbContextOptionsBuilder, DbConnection, Action<SqlServerDbContextOptionsBuilder>)

Configura el contexto para conectarse a una base de datos de SQL Server.

UseSqlServer(DbContextOptionsBuilder, DbConnection, Boolean, Action<SqlServerDbContextOptionsBuilder>)

Configura el contexto para conectarse a una base de datos de SQL Server.

UseSqlServer(DbContextOptionsBuilder, String, Action<SqlServerDbContextOptionsBuilder>)

Configura el contexto para conectarse a una base de datos de SQL Server.

Se aplica a