DbContextOptionsBuilder 类

定义

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

public class DbContextOptionsBuilder : Microsoft.EntityFrameworkCore.Infrastructure.IDbContextOptionsBuilderInfrastructure
type DbContextOptionsBuilder = class
    interface IDbContextOptionsBuilderInfrastructure
Public Class DbContextOptionsBuilder
Implements IDbContextOptionsBuilderInfrastructure
继承
DbContextOptionsBuilder
派生
实现

注解

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

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

构造函数

DbContextOptionsBuilder()

在未设置任何选项的情况下初始化 类的新实例 DbContextOptionsBuilder

DbContextOptionsBuilder(DbContextOptions)

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

属性

IsConfigured

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

Options

获取要配置的选项。

方法

AddInterceptors(IEnumerable<IInterceptor>)

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

AddInterceptors(IInterceptor[])

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

ConfigureLoggingCacheTime(TimeSpan)

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

ConfigureWarnings(Action<WarningsConfigurationBuilder>)

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

ConfigureWarnings(Action<WarningsConfigurationBuilder>)

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

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

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

ReplaceService<TService,TImplementation>()

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

UseApplicationServiceProvider(IServiceProvider)

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

UseInternalServiceProvider(IServiceProvider)

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

UseLoggerFactory(ILoggerFactory)

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

UseMemoryCache(IMemoryCache)

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

UseModel(IModel)

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

UseQueryTrackingBehavior(QueryTrackingBehavior)

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

UseRootApplicationServiceProvider()

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

UseRootApplicationServiceProvider(IServiceProvider)

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

显式接口实现

IDbContextOptionsBuilderInfrastructure.AddOrUpdateExtension<TExtension>(TExtension)

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

扩展方法

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 数据库。

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

UseChangeTrackingProxies(DbContextOptionsBuilder, Boolean, Boolean)

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

UseLazyLoadingProxies(DbContextOptionsBuilder, Action<LazyLoadingProxiesOptionsBuilder>)

打开延迟加载代理的创建。

UseLazyLoadingProxies(DbContextOptionsBuilder, 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 数据库。

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 数据库。

适用于