Partilhar via


DbContextOptionsBuilder Classe

Definição

Fornece uma superfície de API simples para configurar DbContextOptions. Os bancos de dados (e outras extensões) normalmente definem métodos de extensão nesse objeto que permitem configurar a conexão de banco de dados (e outras opções) a serem usadas para um contexto.

public class DbContextOptionsBuilder : Microsoft.EntityFrameworkCore.Infrastructure.IDbContextOptionsBuilderInfrastructure
type DbContextOptionsBuilder = class
    interface IDbContextOptionsBuilderInfrastructure
Public Class DbContextOptionsBuilder
Implements IDbContextOptionsBuilderInfrastructure
Herança
DbContextOptionsBuilder
Derivado
Implementações

Comentários

Você pode usar DbContextOptionsBuilder para configurar um contexto substituindo OnConfiguring(DbContextOptionsBuilder) ou criando um DbContextOptions externamente e passando-o para o construtor de contexto.

Confira Usando DbContextOptions para obter mais informações e exemplos.

Construtores

DbContextOptionsBuilder()

Inicializa uma nova instância da DbContextOptionsBuilder classe sem nenhuma opção definida.

DbContextOptionsBuilder(DbContextOptions)

Inicializa uma nova instância da DbContextOptionsBuilder classe para configurar ainda mais um determinado DbContextOptions.

Propriedades

IsConfigured

Obtém um valor que indica se alguma opção foi configurada.

Options

Obtém as opções que estão sendo configuradas.

Métodos

AddInterceptors(IEnumerable<IInterceptor>)

Adiciona IInterceptor instâncias às registradas no contexto.

AddInterceptors(IInterceptor[])

Adiciona IInterceptor instâncias às registradas no contexto.

ConfigureLoggingCacheTime(TimeSpan)

Configura por quanto tempo o EF Core armazenará em cache a configuração de log em determinados caminhos de alto desempenho. Isso faz com que o EF Core ignore verificações de registro em log potencialmente dispendiosos, mas significa que as alterações de log de runtime (por exemplo, o registro de um novo DiagnosticListener pode não ser levado em conta imediatamente).

ConfigureWarnings(Action<WarningsConfigurationBuilder>)

Configura o comportamento de runtime dos avisos gerados pelo Entity Framework. Você pode definir um comportamento e comportamentos padrão para cada tipo de aviso.

ConfigureWarnings(Action<WarningsConfigurationBuilder>)

Configura o comportamento de runtime dos avisos gerados pelo Entity Framework. Você pode definir um comportamento e comportamentos padrão para cada tipo de aviso.

EnableDetailedErrors(Boolean)

Habilita erros detalhados ao lidar com exceções de valor de dados que ocorrem durante o processamento dos resultados da consulta de armazenamento. Esses erros geralmente ocorrem devido à configuração incorreta das propriedades da entidade. Por exemplo, se uma propriedade estiver configurada para ser do tipo 'int', mas os dados subjacentes no repositório forem, na verdade, do tipo 'string', uma exceção será gerada em runtime durante o processamento do valor de dados. Quando essa opção estiver habilitada e um erro de dados for encontrado, a exceção gerada incluirá detalhes da propriedade de entidade específica que gerou o erro.

EnableSensitiveDataLogging()

Permite que os dados do aplicativo sejam incluídos em mensagens de exceção, registro em log etc. Isso pode incluir os valores atribuídos às propriedades de suas instâncias de entidade, valores de parâmetro para comandos que estão sendo enviados para o banco de dados e outros dados desse tipo. Você só deverá habilitar esse sinalizador se tiver as medidas de segurança apropriadas em vigor com base na confidencialidade desses dados.

EnableSensitiveDataLogging(Boolean)

Permite que os dados do aplicativo sejam incluídos em mensagens de exceção, registro em log etc. Isso pode incluir os valores atribuídos às propriedades de suas instâncias de entidade, valores de parâmetro para comandos que estão sendo enviados para o banco de dados e outros dados desse tipo. Você só deverá habilitar esse sinalizador se tiver as medidas de segurança apropriadas em vigor com base na confidencialidade desses dados.

EnableServiceProviderCaching(Boolean)

Habilita ou desabilita o cache de provedores de serviços internos. Desabilitar o cache pode afetar massivamente o desempenho e só deve ser usado em cenários de teste que criam muitos provedores de serviços para isolamento de teste.

EnableThreadSafetyChecks(Boolean)

Desabilita a detecção de simultaneidade, que detecta muitos casos de uso simultâneo errôneo de uma DbContext instância e faz com que uma exceção informativa seja gerada. Isso fornece uma pequena melhoria de desempenho, mas se uma DbContext instância for usada simultaneamente, o comportamento será indefinido e o programa poderá falhar de maneiras imprevisíveis.

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

Registra eventos filtrados por um delegado de filtro personalizado fornecido. O filtro deve retornar true para registrar uma mensagem ou false para filtrá-la para fora do log.

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

Registra os eventos especificados usando a ação fornecida. Por exemplo, use optionsBuilder.LogTo(Console.WriteLine, new[] { CoreEventId.ContextInitialized }) para registrar o evento no ContextInitialized console.

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

Registra todos os eventos nas categorias especificadas usando a ação fornecida. Por exemplo, use optionsBuilder.LogTo(Console.WriteLine, new[] { DbLoggerCategory.Infrastructure.Name }) para registrar todos os eventos na DbLoggerCategory.Infrastructure categoria.

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

Logs usando a ação fornecida. Por exemplo, use optionsBuilder.LogTo(Console.WriteLine) para fazer logon no console.

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

Registra eventos em um delegado de agente personalizado filtrado por um delegado de filtro personalizado. O filtro deve retornar true para registrar uma mensagem ou false para filtrá-la para fora do log.

ReplaceService<TService,TCurrentImplementation,TNewImplementation>()

Substitui a implementação interna do Entity Framework de uma implementação específica de um contrato de serviço por uma implementação diferente.

ReplaceService<TService,TImplementation>()

Substitui todas as implementações internas do Entity Framework de um contrato de serviço por uma implementação diferente.

UseApplicationServiceProvider(IServiceProvider)

Define o IServiceProvider do qual os serviços de aplicativo serão obtidos. Isso é feito automaticamente ao usar 'AddDbContext' ou 'AddDbContextPool', portanto, é raro que esse método precise ser chamado.

UseInternalServiceProvider(IServiceProvider)

Define o IServiceProvider de que o contexto deve resolve todos os seus serviços. O EF criará e gerenciará um provedor de serviços se nenhum for especificado.

UseLoggerFactory(ILoggerFactory)

Define o ILoggerFactory que será usado para criar ILogger instâncias para registro em log feito por esse contexto.

UseMemoryCache(IMemoryCache)

Define o IMemoryCache a ser usado para cache de consulta por esse contexto.

UseModel(IModel)

Define o modelo a ser usado para o contexto. Se o modelo estiver definido, OnModelCreating(ModelBuilder) não será executado.

UseQueryTrackingBehavior(QueryTrackingBehavior)

Define o comportamento de acompanhamento para consultas LINQ executadas no contexto. Desabilitar o controle de alterações é útil para cenários somente leitura porque evita a sobrecarga de configurar o controle de alterações para cada instância de entidade. Você não deve desabilitar o controle de alterações se quiser manipular instâncias de entidade e persistir essas alterações no banco de dados usando SaveChanges().

UseRootApplicationServiceProvider()

Resolve a raiz IServiceProvider do provedor de serviços de aplicativo com escopo. O provedor raiz pode ser usado para obter serviços de aplicativo singleton de serviços internos singleton.

UseRootApplicationServiceProvider(IServiceProvider)

Define a raiz IServiceProvider da qual os serviços de aplicativo singleton podem ser obtidos de serviços internos singleton.

Implantações explícitas de interface

IDbContextOptionsBuilderInfrastructure.AddOrUpdateExtension<TExtension>(TExtension)

Adiciona a extensão fornecida às opções. Se uma extensão existente do mesmo tipo já existir, ela será substituída.

Métodos de Extensão

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

Configura o contexto para se conectar a um banco de dados do Azure Cosmos.

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

Configura o contexto para se conectar a um banco de dados do Azure Cosmos.

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

Configura o contexto para se conectar a um banco de dados do Azure Cosmos.

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

Configura o contexto para se conectar ao banco de dados na memória compartilhado herdado. Esse método é obsoleto. Use UseInMemoryDatabase(DbContextOptionsBuilder, String, Action<InMemoryDbContextOptionsBuilder>) em vez disso.

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

Configura o contexto para se conectar a um banco de dados nomeado na memória. O banco de dados na memória é compartilhado em qualquer lugar em que o mesmo nome é usado, mas apenas para um determinado provedor de serviços.

UseInMemoryDatabase(DbContextOptionsBuilder, String, Action<InMemoryDbContextOptionsBuilder>)

Configura o contexto para se conectar a um banco de dados nomeado na memória. O banco de dados na memória é compartilhado em qualquer lugar em que o mesmo nome é usado, mas apenas para um determinado provedor de serviços. Para usar o mesmo banco de dados na memória entre provedores de serviços, chame UseInMemoryDatabase(DbContextOptionsBuilder, String, InMemoryDatabaseRoot, Action<InMemoryDbContextOptionsBuilder>) passando um compartilhado InMemoryDatabaseRoot no qual raiz o banco de dados.

UseChangeTrackingProxies(DbContextOptionsBuilder, Boolean, Boolean)

Ativa a criação de proxies de controle de alterações.

UseLazyLoadingProxies(DbContextOptionsBuilder, Action<LazyLoadingProxiesOptionsBuilder>)

Ativa a criação de proxies de carregamento lentos.

UseLazyLoadingProxies(DbContextOptionsBuilder, Boolean)

Ativa a criação de proxies de carregamento lentos.

UseSqlite(DbContextOptionsBuilder, Action<SqliteDbContextOptionsBuilder>)

Configura o contexto para se conectar a um banco de dados SQLite, mas sem definir inicialmente nenhuma DbConnection ou cadeia de conexão.

UseSqlite(DbContextOptionsBuilder, DbConnection, Action<SqliteDbContextOptionsBuilder>)

Configura o contexto para se conectar a um banco de dados SQLite.

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

Configura o contexto para se conectar a um banco de dados SQLite.

UseSqlite(DbContextOptionsBuilder, String, Action<SqliteDbContextOptionsBuilder>)

Configura o contexto para se conectar a um banco de dados SQLite.

UseSqlServer(DbContextOptionsBuilder, Action<SqlServerDbContextOptionsBuilder>)

Configura o contexto para se conectar a um banco de dados do Microsoft SQL Server, mas sem definir inicialmente nenhuma DbConnection ou cadeia de conexão.

UseSqlServer(DbContextOptionsBuilder, DbConnection, Action<SqlServerDbContextOptionsBuilder>)

Configura o contexto para se conectar a um banco de dados do Microsoft SQL Server.

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

Configura o contexto para se conectar a um banco de dados do Microsoft SQL Server.

UseSqlServer(DbContextOptionsBuilder, String, Action<SqlServerDbContextOptionsBuilder>)

Configura o contexto para se conectar a um banco de dados do Microsoft SQL Server.

Aplica-se a