DbContextOptionsBuilder<TContext> 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
提供用于配置的 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 重写 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>) |
使用提供的操作记录指定的事件。 例如,用于 |
| LogTo(Action<String>, IEnumerable<String>, LogLevel, Nullable<DbContextLoggerOptions>) |
使用提供的操作记录指定类别中的所有事件。 例如,用于 |
| LogTo(Action<String>, LogLevel, Nullable<DbContextLoggerOptions>) |
使用提供的操作记录。 例如,用于 |
| 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) |