语言

DbContextOptionsBuilder<TContext> 类

定义

提供用于配置的 DbContextOptions<TContext>简单 API 图面。 数据库(和其他扩展)通常定义此对象的扩展方法,以便配置要用于上下文的数据库连接(和其他选项)。

public class DbContextOptionsBuilder<TContext> : Microsoft.EntityFrameworkCore.DbContextOptionsBuilder where TContext : DbContext
[System.Runtime.CompilerServices.Nullable(0)]
public class DbContextOptionsBuilder<TContext> : Microsoft.EntityFrameworkCore.DbContextOptionsBuilder where TContext : DbContext
type DbContextOptionsBuilder<'Context (requires 'Context :> DbContext)> = class
    inherit DbContextOptionsBuilder
[<System.Runtime.CompilerServices.Nullable(0)>]
type DbContextOptionsBuilder<'Context (requires 'Context :> DbContext)> = class
    inherit DbContextOptionsBuilder
Public Class DbContextOptionsBuilder(Of TContext)
Inherits DbContextOptionsBuilder

类型参数

TContext

要配置的上下文的类型。

继承
DbContextOptionsBuilder<TContext>
特性

注解

可以通过 DbContextOptionsBuilder 重写 OnConfiguring(DbContextOptionsBuilder) 或创建 DbContextOptions 外部并将其传递给上下文构造函数来配置上下文。

有关详细信息和示例,请参阅 使用 DbContextOptions 。

构造函数

名称 说明
DbContextOptionsBuilder<TContext>()

初始化没有设置选项的 DbContextOptionsBuilder<TContext> 类的新实例。

DbContextOptionsBuilder<TContext>(DbContextOptions<TContext>)

初始化类的新实例以进一步配置给定DbContextOptions的实例DbContextOptionsBuilder<TContext>。

属性

名称 说明
IsConfigured

获取一个值,该值指示是否已配置任何选项。

(继承自 DbContextOptionsBuilder)
Options

获取正在配置的选项。

方法

名称 说明
AddInterceptors(IEnumerable<IInterceptor>)

将 IInterceptor 实例添加到在上下文中注册的实例。

AddInterceptors(IEnumerable<IInterceptor>)

将 IInterceptor 实例添加到在上下文中注册的实例。

(继承自 DbContextOptionsBuilder)
AddInterceptors(IInterceptor[])

将 IInterceptor 实例添加到在上下文中注册的实例。

AddInterceptors(IInterceptor[])

将 IInterceptor 实例添加到在上下文中注册的实例。

(继承自 DbContextOptionsBuilder)
ConfigureLoggingCacheTime(TimeSpan)

配置 EF Core 在特定高性能路径中缓存日志记录配置的时间。 这使得 EF Core 跳过可能代价高昂的日志记录检查,但意味着运行时日志记录更改(例如,注册新 DiagnosticListener 内容可能不会立即考虑)。

ConfigureWarnings(Action<WarningsConfigurationBuilder>)

配置 Entity Framework 生成的警告的运行时行为。 可以为每个警告类型设置默认行为和行为。

ConfigureWarnings(Action<WarningsConfigurationBuilder>)

配置 Entity Framework 生成的警告的运行时行为。 可以为每个警告类型设置默认行为和行为。

EnableDetailedErrors(Boolean)

在处理存储查询结果期间发生的数据值异常时启用详细错误。 此类错误最常因实体属性配置错误而发生。 例如,如果属性配置为类型为“int”,但存储中的基础数据实际上是类型为“string”,则在处理数据值期间在运行时将生成异常。 启用此选项并遇到数据错误时,生成的异常将包含生成错误的特定实体属性的详细信息。

EnableSensitiveDataLogging()

允许将应用程序数据包含在异常消息、日志记录等中。这可以包括分配给实体实例属性的值、要发送到数据库的命令的参数值以及其他此类数据。 仅当根据此数据的敏感度实施适当的安全措施时,才应启用此标志。

EnableSensitiveDataLogging(Boolean)

允许将应用程序数据包含在异常消息、日志记录等中。这可以包括分配给实体实例属性的值、要发送到数据库的命令的参数值以及其他此类数据。 仅当根据此数据的敏感度实施适当的安全措施时,才应启用此标志。

EnableServiceProviderCaching(Boolean)

启用或禁用内部服务提供商的缓存。 禁用缓存可能会严重影响性能,并且只能在生成许多服务提供商进行测试隔离的测试方案中使用。

EnableThreadSafetyChecks(Boolean)

禁用并发检测,该检测可检测实例的多个错误并发使用 DbContext 情况,并导致引发信息性异常。 这提供了轻微的性能改进,但如果 DbContext 同时使用实例,则行为将未定义,并且程序可能会以不可预知的方式失败。

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

记录由提供的自定义筛选器委托筛选的事件。 筛选器应返回 true 来记录消息,或返回 false 以将其从日志中筛选出来。

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

使用提供的操作记录指定的事件。 例如,用于 optionsBuilder.LogTo(Console.WriteLine, new[] { CoreEventId.ContextInitialized }) 将 ContextInitialized 事件记录到控制台。

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

使用提供的操作记录指定类别中的所有事件。 例如,用于 optionsBuilder.LogTo(Console.WriteLine, new[] { DbLoggerCategory.Infrastructure.Name }) 记录类别中的所有 DbLoggerCategory.Infrastructure 事件。

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

使用提供的操作记录。 例如,用于 optionsBuilder.LogTo(Console.WriteLine) 登录到控制台。

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

将事件记录到由自定义筛选器委托筛选的自定义记录器委托。 筛选器应返回 true 来记录消息,或返回 false 以将其从日志中筛选出来。

ReplaceService<TService,TCurrentImplementation,TNewImplementation>()

将服务协定的特定实现的内部 Entity Framework 实现替换为不同的实现。

ReplaceService<TService,TImplementation>()

将服务协定的所有内部 Entity Framework 实现替换为不同的实现。

UseApplicationServiceProvider(IServiceProvider)

IServiceProvider设置将从中获取应用程序服务。 使用“AddDbContext”时会自动执行此操作,因此很少需要调用此方法。

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

将种子方法配置为在调用后 EnsureCreatedAsync(CancellationToken) 运行,或者在异步应用迁移后运行。 即使未对存储区执行任何更改,也会调用它。

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

将种子方法配置为在调用后 EnsureCreatedAsync(CancellationToken) 运行,或者在异步应用迁移后运行。 即使未对存储区执行任何更改,也会调用它。

UseInternalServiceProvider(IServiceProvider)

设置 IServiceProvider 上下文应从中解析其所有服务。 如果未指定任何服务提供程序,EF 将创建和管理服务提供商。

UseLoggerFactory(ILoggerFactory)

ILoggerFactory设置将用于创建ILogger此上下文完成日志记录的实例。

UseMemoryCache(IMemoryCache)

IMemoryCache设置要用于此上下文的查询缓存。

UseModel(IModel)

设置要用于上下文的模型。 如果设置了模型, OnModelCreating(ModelBuilder) 则不会运行。

UseQueryTrackingBehavior(QueryTrackingBehavior)

设置针对上下文运行的 LINQ 查询的跟踪行为。 禁用更改跟踪对于只读方案很有用,因为它避免了为每个实体实例设置更改跟踪的开销。 如果要操作实体实例并将这些更改保存到数据库, SaveChanges()则不应禁用更改跟踪。

UseRootApplicationServiceProvider()

解析作用域内应用程序服务提供程序中的根 IServiceProvider 。 根提供程序可用于从单一实例内部服务获取单一实例应用程序服务。

UseRootApplicationServiceProvider(IServiceProvider)

设置可从单一实例内部服务获取单一实例应用程序服务的根 IServiceProvider 。

UseSeeding(Action<DbContext,Boolean>)

配置种子方法,以在调用或应用迁移后运行 EnsureCreated() 。 即使未对存储区执行任何更改,也会调用它。

UseSeeding(Action<TContext,Boolean>)

配置种子方法,以在调用或应用迁移后运行 EnsureCreated() 。 即使未对存储区执行任何更改,也会调用它。

显式接口实现

名称 说明
IDbContextOptionsBuilderInfrastructure.AddOrUpdateExtension<TExtension>(TExtension)

将给定的扩展添加到选项中。 如果已存在同一类型的现有扩展,则会替换它。

(继承自 DbContextOptionsBuilder)
IDbContextOptionsBuilderInfrastructure.RemoveExtension<TExtension>()

从选项中删除给定类型的扩展。 如果给定类型的扩展不存在,则这是一个 no-op。

(继承自 DbContextOptionsBuilder)

扩展方法

名称 说明
ConfigureSqlEngine(DbContextOptionsBuilder, Action<SqlEngineDbContextOptionsBuilder>)

配置上下文以连接到任何SQL Server、Azure SQL、Azure Synapse数据库,但最初未设置任何DbConnection或连接字符串。

ConfigureSqlEngine<TContext>(DbContextOptionsBuilder<TContext>, Action<SqlEngineDbContextOptionsBuilder>)

配置上下文以连接到任何SQL Server、Azure SQL、Azure Synapse数据库,但最初未设置任何DbConnection或连接字符串。

UseAzureSql(DbContextOptionsBuilder, Action<AzureSqlDbContextOptionsBuilder>)

配置上下文以连接到Azure SQL数据库,但最初未设置任何DbConnection或连接字符串。

UseAzureSql(DbContextOptionsBuilder, DbConnection, Action<AzureSqlDbContextOptionsBuilder>)

配置上下文以连接到Azure SQL数据库。

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

配置上下文以连接到Azure SQL数据库。

UseAzureSql(DbContextOptionsBuilder, String, Action<AzureSqlDbContextOptionsBuilder>)

配置上下文以连接到Azure SQL数据库。

UseAzureSql<TContext>(DbContextOptionsBuilder<TContext>, Action<AzureSqlDbContextOptionsBuilder>)

配置上下文以连接到Azure SQL数据库,但最初未设置任何DbConnection或连接字符串。

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

配置上下文以连接到Azure SQL数据库。

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

配置上下文以连接到Azure SQL数据库。

UseAzureSql<TContext>(DbContextOptionsBuilder<TContext>, String, Action<AzureSqlDbContextOptionsBuilder>)

配置上下文以连接到Azure SQL数据库。

UseAzureSynapse(DbContextOptionsBuilder, Action<AzureSynapseDbContextOptionsBuilder>)

配置上下文以连接到Azure Synapse数据库,但最初未设置任何DbConnection或连接字符串。

UseAzureSynapse(DbContextOptionsBuilder, DbConnection, Action<AzureSynapseDbContextOptionsBuilder>)

配置上下文以连接到Azure Synapse数据库。

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

配置上下文以连接到Azure Synapse数据库。

UseAzureSynapse(DbContextOptionsBuilder, String, Action<AzureSynapseDbContextOptionsBuilder>)

配置上下文以连接到Azure Synapse数据库。

UseAzureSynapse<TContext>(DbContextOptionsBuilder<TContext>, Action<AzureSynapseDbContextOptionsBuilder>)

配置上下文以连接到Azure Synapse数据库,但最初未设置任何DbConnection或连接字符串。

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

配置上下文以连接到Azure Synapse数据库。

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

配置上下文以连接到Azure Synapse数据库。

UseAzureSynapse<TContext>(DbContextOptionsBuilder<TContext>, String, Action<AzureSynapseDbContextOptionsBuilder>)

配置上下文以连接到Azure Synapse数据库。

UseChangeTrackingProxies(DbContextOptionsBuilder, Boolean, Boolean)

启用更改跟踪代理的创建。

UseChangeTrackingProxies<TContext>(DbContextOptionsBuilder<TContext>, Boolean, Boolean)

启用更改跟踪代理的创建。

UseCosmos(DbContextOptionsBuilder, Action<CosmosDbContextOptionsBuilder>)

配置上下文以连接到 Azure Cosmos 数据库。 需要在单独的调用中指定连接详细信息。

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

配置上下文以连接到 Azure Cosmos 数据库。

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

配置上下文以连接到 Azure Cosmos 数据库。

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

配置上下文以连接到 Azure Cosmos 数据库。

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

配置上下文以连接到 Azure Cosmos 数据库。 需要在单独的调用中指定连接详细信息。

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

配置上下文以连接到 Azure Cosmos 数据库。

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

配置上下文以连接到 Azure Cosmos 数据库。

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

配置上下文以连接到 Azure Cosmos 数据库。

UseInMemoryDatabase(DbContextOptionsBuilder, Action<InMemoryDbContextOptionsBuilder>)
已过时.
已过时.

配置上下文以连接到旧的内存中共享数据库。 此方法已过时。 改用 UseInMemoryDatabase(DbContextOptionsBuilder, String, Action<InMemoryDbContextOptionsBuilder>)。

UseInMemoryDatabase(DbContextOptionsBuilder, String, Action<InMemoryDbContextOptionsBuilder>)

配置上下文以连接到命名的内存中数据库。 在使用相同的名称的任何位置共享内存中数据库,但仅用于给定的服务提供程序。 若要跨服务提供商使用相同的内存中数据库,请调用 UseInMemoryDatabase(DbContextOptionsBuilder, String, InMemoryDatabaseRoot, Action<InMemoryDbContextOptionsBuilder>) 将共享 InMemoryDatabaseRoot 数据库传递给该数据库。

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

配置上下文以连接到命名的内存中数据库。 在使用相同的名称的任何位置共享内存中数据库,但仅用于给定的服务提供程序。

UseInMemoryDatabase<TContext>(DbContextOptionsBuilder<TContext>, Action<InMemoryDbContextOptionsBuilder>)
已过时.
已过时.

配置上下文以连接到旧的内存中共享数据库。 此方法已过时。 改用 UseInMemoryDatabase<TContext>(DbContextOptionsBuilder<TContext>, String, Action<InMemoryDbContextOptionsBuilder>)。

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

配置上下文以连接到内存中数据库。 在使用相同的名称的任何位置共享内存中数据库,但仅用于给定的服务提供程序。 若要跨服务提供商使用相同的内存中数据库,请调用 UseInMemoryDatabase<TContext>(DbContextOptionsBuilder<TContext>, String, InMemoryDatabaseRoot, Action<InMemoryDbContextOptionsBuilder>) 将共享 InMemoryDatabaseRoot 数据库传递给该数据库。

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

配置上下文以连接到内存中数据库。 在使用相同的名称的任何位置共享内存中数据库,但仅用于给定的服务提供程序。

UseLazyLoadingProxies(DbContextOptionsBuilder, Action<LazyLoadingProxiesOptionsBuilder>)

启用延迟加载代理的创建。

UseLazyLoadingProxies(DbContextOptionsBuilder, Boolean)

启用延迟加载代理的创建。

UseLazyLoadingProxies<TContext>(DbContextOptionsBuilder<TContext>, Action<LazyLoadingProxiesOptionsBuilder>)

启用延迟加载代理的创建。

UseLazyLoadingProxies<TContext>(DbContextOptionsBuilder<TContext>, Boolean)

启用延迟加载代理的创建。

UseSqlite(DbContextOptionsBuilder, Action<SqliteDbContextOptionsBuilder>)

配置上下文以连接到 SQLite 数据库,但最初未设置任何DbConnection或连接字符串。

UseSqlite(DbContextOptionsBuilder, DbConnection, Action<SqliteDbContextOptionsBuilder>)

配置上下文以连接到 SQLite 数据库。

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

配置上下文以连接到 SQLite 数据库。

UseSqlite(DbContextOptionsBuilder, String, Action<SqliteDbContextOptionsBuilder>)

配置上下文以连接到 SQLite 数据库。

UseSqlite<TContext>(DbContextOptionsBuilder<TContext>, Action<SqliteDbContextOptionsBuilder>)

配置上下文以连接到 SQLite 数据库,但最初未设置任何DbConnection或连接字符串。

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

配置上下文以连接到 SQLite 数据库。

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

配置上下文以连接到 SQLite 数据库。

UseSqlite<TContext>(DbContextOptionsBuilder<TContext>, String, Action<SqliteDbContextOptionsBuilder>)

配置上下文以连接到 SQLite 数据库。

UseSqlServer(DbContextOptionsBuilder, Action<SqlServerDbContextOptionsBuilder>)

配置上下文以连接到SQL Server数据库,但最初未设置任何DbConnection或连接字符串。

UseSqlServer(DbContextOptionsBuilder, DbConnection, Action<SqlServerDbContextOptionsBuilder>)

配置上下文以连接到SQL Server数据库。

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

配置上下文以连接到SQL Server数据库。

UseSqlServer(DbContextOptionsBuilder, String, Action<SqlServerDbContextOptionsBuilder>)

配置上下文以连接到SQL Server数据库。

UseSqlServer<TContext>(DbContextOptionsBuilder<TContext>, Action<SqlServerDbContextOptionsBuilder>)

配置上下文以连接到SQL Server数据库,但最初未设置任何DbConnection或连接字符串。

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

配置上下文以连接到SQL Server数据库。

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

配置上下文以连接到SQL Server数据库。

UseSqlServer<TContext>(DbContextOptionsBuilder<TContext>, String, Action<SqlServerDbContextOptionsBuilder>)

配置上下文以连接到SQL Server数据库。

适用于