DbContextOptionsBuilder<TContext> 类

定义

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

public class DbContextOptionsBuilder<TContext> : Microsoft.EntityFrameworkCore.DbContextOptionsBuilder where TContext : DbContext
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>)

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

属性

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 可能不会立即考虑) 。

ConfigureLoggingCacheTime(TimeSpan)

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

(继承自 DbContextOptionsBuilder)
ConfigureWarnings(Action<WarningsConfigurationBuilder>)

配置实体框架生成的警告的运行时行为。 可以为每个警告类型设置默认行为和行为。

ConfigureWarnings(Action<WarningsConfigurationBuilder>)

配置实体框架生成的警告的运行时行为。 可以为每个警告类型设置默认行为和行为。

ConfigureWarnings(Action<WarningsConfigurationBuilder>)

配置实体框架生成的警告的运行时行为。 可以为每个警告类型设置默认行为和行为。

(继承自 DbContextOptionsBuilder)
ConfigureWarnings(Action<WarningsConfigurationBuilder>)

配置实体框架生成的警告的运行时行为。 可以为每个警告类型设置默认行为和行为。

(继承自 DbContextOptionsBuilder)
EnableDetailedErrors(Boolean)

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

EnableDetailedErrors(Boolean)

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

(继承自 DbContextOptionsBuilder)
EnableSensitiveDataLogging()

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

EnableSensitiveDataLogging()

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

(继承自 DbContextOptionsBuilder)
EnableSensitiveDataLogging(Boolean)

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

EnableSensitiveDataLogging(Boolean)

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

(继承自 DbContextOptionsBuilder)
EnableServiceProviderCaching(Boolean)

启用或禁用内部服务提供程序的缓存。 禁用缓存可能会对性能产生巨大影响,并且只应在生成许多服务提供程序以用于测试隔离的测试方案中使用。

EnableServiceProviderCaching(Boolean)

启用或禁用内部服务提供程序的缓存。 禁用缓存可能会对性能产生巨大影响,并且只应在生成许多服务提供程序以用于测试隔离的测试方案中使用。

(继承自 DbContextOptionsBuilder)
EnableThreadSafetyChecks(Boolean)

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

EnableThreadSafetyChecks(Boolean)

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

(继承自 DbContextOptionsBuilder)
LogTo(Action<String>, Func<EventId,LogLevel,Boolean>, Nullable<DbContextLoggerOptions>)

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

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

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

(继承自 DbContextOptionsBuilder)
LogTo(Action<String>, IEnumerable<EventId>, LogLevel, Nullable<DbContextLoggerOptions>)

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

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

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

(继承自 DbContextOptionsBuilder)
LogTo(Action<String>, IEnumerable<String>, LogLevel, Nullable<DbContextLoggerOptions>)

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

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

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

(继承自 DbContextOptionsBuilder)
LogTo(Action<String>, LogLevel, Nullable<DbContextLoggerOptions>)

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

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

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

(继承自 DbContextOptionsBuilder)
LogTo(Func<EventId,LogLevel,Boolean>, Action<EventData>)

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

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

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

(继承自 DbContextOptionsBuilder)
ReplaceService<TService,TCurrentImplementation,TNewImplementation>()

将服务协定的特定实现的内部实体框架实现替换为不同的实现。

ReplaceService<TService,TCurrentImplementation,TNewImplementation>()

将服务协定的特定实现的内部实体框架实现替换为不同的实现。

(继承自 DbContextOptionsBuilder)
ReplaceService<TService,TImplementation>()

将服务协定的所有内部实体框架实现替换为不同的实现。

ReplaceService<TService,TImplementation>()

将服务协定的所有内部实体框架实现替换为不同的实现。

(继承自 DbContextOptionsBuilder)
UseApplicationServiceProvider(IServiceProvider)

IServiceProvider设置将从中获取应用程序服务的 。 这是在使用“AddDbContext”时自动完成的,因此很少需要调用此方法。

UseApplicationServiceProvider(IServiceProvider)

IServiceProvider设置将从中获取应用程序服务的 。 这是在使用“AddDbContext”或“AddDbContextPool”时自动完成的,因此需要调用此方法的情况很少见。

(继承自 DbContextOptionsBuilder)
UseInternalServiceProvider(IServiceProvider)

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

UseLoggerFactory(ILoggerFactory)

ILoggerFactory设置将用于创建ILogger实例,以便通过此上下文完成日志记录。

UseMemoryCache(IMemoryCache)

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

UseModel(IModel)

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

UseQueryTrackingBehavior(QueryTrackingBehavior)

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

UseQueryTrackingBehavior(QueryTrackingBehavior)

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

(继承自 DbContextOptionsBuilder)
UseRootApplicationServiceProvider()

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

UseRootApplicationServiceProvider()

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

(继承自 DbContextOptionsBuilder)
UseRootApplicationServiceProvider(IServiceProvider)

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

UseRootApplicationServiceProvider(IServiceProvider)

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

(继承自 DbContextOptionsBuilder)

显式接口实现

IDbContextOptionsBuilderInfrastructure.AddOrUpdateExtension<TExtension>(TExtension)

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

(继承自 DbContextOptionsBuilder)

扩展方法

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

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

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

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

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

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

UseCosmos<TContext>(DbContextOptionsBuilder<TContext>, String, TokenCredential, String, 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 数据库。

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

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

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

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

UseInMemoryDatabase(DbContextOptionsBuilder, String, Action<InMemoryDbContextOptionsBuilder>)

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

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

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

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

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

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

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

UseChangeTrackingProxies(DbContextOptionsBuilder, Boolean, Boolean)

打开更改跟踪代理的创建。

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

打开更改跟踪代理的创建。

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>)

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

UseSqlServer(DbContextOptionsBuilder, DbConnection, Action<SqlServerDbContextOptionsBuilder>)

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

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

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

UseSqlServer(DbContextOptionsBuilder, String, Action<SqlServerDbContextOptionsBuilder>)

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

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

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

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

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

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

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

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

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

适用于