DbContextOptionsBuilder<TContext> 类

定义

提供了一个用于配置的简单 API 图面 DbContextOptions<TContext> 。 数据库 (和其他扩展) 通常在此对象上定义扩展方法,该方法允许您将数据库连接配置 (和其他) 用于上下文的选项。

您可以使用 DbContextOptionsBuilder 来配置上下文,方法是 OnConfiguring(DbContextOptionsBuilder) 在外部重写或创建 DbContextOptions ,并将其传递给上下文构造函数。

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

DbContextOptionsBuilder<TContext>不设置任何选项,初始化类的新实例。

DbContextOptionsBuilder<TContext>(DbContextOptions<TContext>)

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

属性

IsConfigured

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

当你重写以配置上下文时,这会很有用 OnConfiguring(DbContextOptionsBuilder) ,但在某些情况下,你还可以通过上下文构造函数向外提供选项。 此属性可用于确定是否已设置这些选项,并跳过中的部分或全部逻辑 OnConfiguring(DbContextOptionsBuilder)

(继承自 DbContextOptionsBuilder)
Options

获取要配置的选项。

方法

AddInterceptors(IEnumerable<IInterceptor>)

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

拦截程序可用于查看、更改或取消实体框架执行的操作。 有关详细信息,请参阅的特定实现 IInterceptor 。 例如,"IDbCommandInterceptor"。

单个侦听器实例可以实现多个不同的侦听器接口。 我将注册为其实现的所有接口的侦听器。

扩展还可以 IInterceptor 在内部服务提供程序中注册多个。 如果同时找到注入的和应用程序拦截器,则将按从服务提供程序解析的顺序运行插入的拦截器,然后应用程序拦截器将按照它们添加到上下文中的顺序运行。

多次调用此方法会导致每个调用中的所有侦听器都被添加到上下文中。 在上一个调用中添加的拦截程序不会被以后调用中添加的拦截程序重写。

AddInterceptors(IEnumerable<IInterceptor>)

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

拦截程序可用于查看、更改或取消实体框架执行的操作。 有关详细信息,请参阅的特定实现 IInterceptor 。 例如,"IDbCommandInterceptor"。

单个侦听器实例可以实现多个不同的侦听器接口。 我将注册为其实现的所有接口的侦听器。

扩展还可以 IInterceptor 在内部服务提供程序中注册多个。 如果同时找到注入的和应用程序拦截器,则将按从服务提供程序解析的顺序运行插入的拦截器,然后应用程序拦截器将按照它们添加到上下文中的顺序运行。

多次调用此方法会导致每个调用中的所有侦听器都被添加到上下文中。 在上一个调用中添加的拦截程序不会被以后调用中添加的拦截程序重写。

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

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

拦截程序可用于查看、更改或取消实体框架执行的操作。 有关详细信息,请参阅的特定实现 IInterceptor 。 例如,"IDbCommandInterceptor"。

扩展还可以 IInterceptor 在内部服务提供程序中注册多个。 如果同时找到注入的和应用程序拦截器,则将按从服务提供程序解析的顺序运行插入的拦截器,然后应用程序拦截器将按照它们添加到上下文中的顺序运行。

多次调用此方法会导致每个调用中的所有侦听器都被添加到上下文中。 在上一个调用中添加的拦截程序不会被以后调用中添加的拦截程序重写。

AddInterceptors(IInterceptor[])

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

拦截程序可用于查看、更改或取消实体框架执行的操作。 有关详细信息,请参阅的特定实现 IInterceptor 。 例如,"IDbCommandInterceptor"。

扩展还可以 IInterceptor 在内部服务提供程序中注册多个。 如果同时找到注入的和应用程序拦截器,则将按从服务提供程序解析的顺序运行插入的拦截器,然后应用程序拦截器将按照它们添加到上下文中的顺序运行。

多次调用此方法会导致每个调用中的所有侦听器都被添加到上下文中。 在上一个调用中添加的拦截程序不会被以后调用中添加的拦截程序重写。

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

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

请注意,更改此配置可能会导致 EF 生成新的内部服务提供程序,这可能会导致性能问题。 通常情况下,给定的应用程序将不会使用任何一个或两个不同的配置。

请注意,如果应用程序通过调用来设置内部服务提供程序 UseInternalServiceProvider(IServiceProvider) ,则对于该服务提供程序的所有使用,此选项必须以相同的方式进行配置。 请考虑改为不调用, UseInternalServiceProvider(IServiceProvider) 以便 EF 将管理服务提供程序,并可根据需要创建新实例。

ConfigureWarnings(Action<WarningsConfigurationBuilder>)

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

ConfigureWarnings(Action<WarningsConfigurationBuilder>)

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

请注意,更改此配置可能会导致 EF 生成新的内部服务提供程序,这可能会导致性能问题。 通常情况下,给定的应用程序将不会使用任何一个或两个不同的配置。

请注意,如果应用程序通过调用来设置内部服务提供程序 UseInternalServiceProvider(IServiceProvider) ,则对于该服务提供程序的所有使用,此选项必须以相同的方式进行配置。 请考虑改为不调用, UseInternalServiceProvider(IServiceProvider) 以便 EF 将管理服务提供程序,并可根据需要创建新实例。

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

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

(继承自 DbContextOptionsBuilder)
EnableDetailedErrors(Boolean)

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

启用此选项会在执行查询时产生较小的性能开销。

请注意,如果应用程序通过调用来设置内部服务提供程序 UseInternalServiceProvider(IServiceProvider) ,则对于该服务提供程序的所有使用,此选项必须以相同的方式进行配置。 请考虑改为不调用, UseInternalServiceProvider(IServiceProvider) 以便 EF 将管理服务提供程序,并可根据需要创建新实例。

EnableDetailedErrors(Boolean)

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

启用此选项会在执行查询时产生较小的性能开销。

请注意,如果应用程序通过调用来设置内部服务提供程序 UseInternalServiceProvider(IServiceProvider) ,则对于该服务提供程序的所有使用,此选项必须以相同的方式进行配置。 请考虑改为不调用, UseInternalServiceProvider(IServiceProvider) 以便 EF 将管理服务提供程序,并可根据需要创建新实例。

(继承自 DbContextOptionsBuilder)
EnableSensitiveDataLogging()

使应用程序数据包括在异常消息、日志记录等中。这可以包括分配给实体实例的属性的值、发送到数据库的命令的参数值以及其他此类数据。 如果根据此数据的敏感性适当地设置了适当的安全措施,则只能启用此标志。

EnableSensitiveDataLogging()

使应用程序数据包括在异常消息、日志记录等中。这可以包括分配给实体实例的属性的值、发送到数据库的命令的参数值以及其他此类数据。 如果根据此数据的敏感性适当地设置了适当的安全措施,则只能启用此标志。

(继承自 DbContextOptionsBuilder)
EnableSensitiveDataLogging(Boolean)

使应用程序数据包括在异常消息、日志记录等中。这可以包括分配给实体实例的属性的值、发送到数据库的命令的参数值以及其他此类数据。 如果根据此数据的敏感性适当地设置了适当的安全措施,则只能启用此标志。

请注意,如果应用程序通过调用来设置内部服务提供程序 UseInternalServiceProvider(IServiceProvider) ,则对于该服务提供程序的所有使用,此选项必须以相同的方式进行配置。 请考虑改为不调用, UseInternalServiceProvider(IServiceProvider) 以便 EF 将管理服务提供程序,并可根据需要创建新实例。

EnableSensitiveDataLogging(Boolean)

使应用程序数据包括在异常消息、日志记录等中。这可以包括分配给实体实例的属性的值、发送到数据库的命令的参数值以及其他此类数据。 如果根据此数据的敏感性适当地设置了适当的安全措施,则只能启用此标志。

请注意,如果应用程序通过调用来设置内部服务提供程序 UseInternalServiceProvider(IServiceProvider) ,则对于该服务提供程序的所有使用,此选项必须以相同的方式进行配置。 请考虑改为不调用, UseInternalServiceProvider(IServiceProvider) 以便 EF 将管理服务提供程序,并可根据需要创建新实例。

(继承自 DbContextOptionsBuilder)
EnableServiceProviderCaching(Boolean)

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

请注意,如果应用程序通过调用来设置内部服务提供程序 UseInternalServiceProvider(IServiceProvider) ,则设置此选项将不起作用。

EnableServiceProviderCaching(Boolean)

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

请注意,如果应用程序通过调用来设置内部服务提供程序 UseInternalServiceProvider(IServiceProvider) ,则设置此选项将不起作用。

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

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

LogTo(Action<String>, LogLevel, Nullable<DbContextLoggerOptions>) 重载用于所有事件的默认日志记录。 使用 " LogTo(Action<String>, IEnumerable<EventId>, LogLevel, Nullable<DbContextLoggerOptions>) 使用 LogTo(Action<String>, IEnumerable<String>, LogLevel, Nullable<DbContextLoggerOptions>) 重载只记录特定类别中的事件"。 使用 LogTo(Func<EventId,LogLevel,Boolean>, Action<EventData>) 重载可以记录到完全自定义的记录器。

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

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

LogTo(Action<String>, LogLevel, Nullable<DbContextLoggerOptions>) 重载用于所有事件的默认日志记录。 使用 " LogTo(Action<String>, IEnumerable<EventId>, LogLevel, Nullable<DbContextLoggerOptions>) 使用 LogTo(Action<String>, IEnumerable<String>, LogLevel, Nullable<DbContextLoggerOptions>) 重载只记录特定类别中的事件"。 使用 LogTo(Func<EventId,LogLevel,Boolean>, Action<EventData>) 重载可以记录到完全自定义的记录器。

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

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

LogTo(Action<String>, LogLevel, Nullable<DbContextLoggerOptions>) 重载用于所有事件的默认日志记录。 使用 LogTo(Action<String>, IEnumerable<String>, LogLevel, Nullable<DbContextLoggerOptions>) 重载只记录特定类别的事件。 使用 LogTo(Action<String>, Func<EventId,LogLevel,Boolean>, Nullable<DbContextLoggerOptions>) 重载可对事件使用自定义筛选器。 使用 LogTo(Func<EventId,LogLevel,Boolean>, Action<EventData>) 重载可以记录到完全自定义的记录器。

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

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

LogTo(Action<String>, LogLevel, Nullable<DbContextLoggerOptions>) 重载用于所有事件的默认日志记录。 使用 LogTo(Action<String>, IEnumerable<String>, LogLevel, Nullable<DbContextLoggerOptions>) 重载只记录特定类别的事件。 使用 LogTo(Action<String>, Func<EventId,LogLevel,Boolean>, Nullable<DbContextLoggerOptions>) 重载可对事件使用自定义筛选器。 使用 LogTo(Func<EventId,LogLevel,Boolean>, Action<EventData>) 重载可以记录到完全自定义的记录器。

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

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

LogTo(Action<String>, LogLevel, Nullable<DbContextLoggerOptions>) 重载用于所有事件的默认日志记录。 使用 LogTo(Action<String>, IEnumerable<EventId>, LogLevel, Nullable<DbContextLoggerOptions>) 重载只记录特定事件。 使用 LogTo(Action<String>, Func<EventId,LogLevel,Boolean>, Nullable<DbContextLoggerOptions>) 重载可对事件使用自定义筛选器。 使用 LogTo(Func<EventId,LogLevel,Boolean>, Action<EventData>) 重载可以记录到完全自定义的记录器。

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

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

LogTo(Action<String>, LogLevel, Nullable<DbContextLoggerOptions>) 重载用于所有事件的默认日志记录。 使用 LogTo(Action<String>, IEnumerable<EventId>, LogLevel, Nullable<DbContextLoggerOptions>) 重载只记录特定事件。 使用 LogTo(Action<String>, Func<EventId,LogLevel,Boolean>, Nullable<DbContextLoggerOptions>) 重载可对事件使用自定义筛选器。 使用 LogTo(Func<EventId,LogLevel,Boolean>, Action<EventData>) 重载可以记录到完全自定义的记录器。

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

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

此重载允许控制最小级别的日志记录和日志格式。 使用 LogTo(Action<String>, IEnumerable<EventId>, LogLevel, Nullable<DbContextLoggerOptions>) 重载以仅记录特定事件。 使用 LogTo(Action<String>, IEnumerable<String>, LogLevel, Nullable<DbContextLoggerOptions>) 重载只记录特定类别的事件。 使用 LogTo(Action<String>, Func<EventId,LogLevel,Boolean>, Nullable<DbContextLoggerOptions>) 重载可对事件使用自定义筛选器。 使用 LogTo(Func<EventId,LogLevel,Boolean>, Action<EventData>) 重载可以记录到完全自定义的记录器。

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

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

此重载允许控制最小级别的日志记录和日志格式。 使用 LogTo(Action<String>, IEnumerable<EventId>, LogLevel, Nullable<DbContextLoggerOptions>) 重载以仅记录特定事件。 使用 LogTo(Action<String>, IEnumerable<String>, LogLevel, Nullable<DbContextLoggerOptions>) 重载只记录特定类别的事件。 使用 LogTo(Action<String>, Func<EventId,LogLevel,Boolean>, Nullable<DbContextLoggerOptions>) 重载可对事件使用自定义筛选器。 使用 LogTo(Func<EventId,LogLevel,Boolean>, Action<EventData>) 重载可以记录到完全自定义的记录器。

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

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

LogTo(Action<String>, LogLevel, Nullable<DbContextLoggerOptions>) 重载用于所有事件的默认日志记录。 使用 " LogTo(Action<String>, IEnumerable<EventId>, LogLevel, Nullable<DbContextLoggerOptions>) 使用 LogTo(Action<String>, IEnumerable<String>, LogLevel, Nullable<DbContextLoggerOptions>) 重载只记录特定类别中的事件"。 使用 LogTo(Action<String>, Func<EventId,LogLevel,Boolean>, Nullable<DbContextLoggerOptions>) 重载可对事件使用自定义筛选器。

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

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

LogTo(Action<String>, LogLevel, Nullable<DbContextLoggerOptions>) 重载用于所有事件的默认日志记录。 使用 " LogTo(Action<String>, IEnumerable<EventId>, LogLevel, Nullable<DbContextLoggerOptions>) 使用 LogTo(Action<String>, IEnumerable<String>, LogLevel, Nullable<DbContextLoggerOptions>) 重载只记录特定类别中的事件"。 使用 LogTo(Action<String>, Func<EventId,LogLevel,Boolean>, Nullable<DbContextLoggerOptions>) 重载可对事件使用自定义筛选器。

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

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

此方法可用于替换可以在 EF 内部服务提供程序中多次合法注册的单个服务实例。

仅当 EF 正在生成和管理其内部服务提供程序时,才能使用此方法。 如果服务提供程序在外部生成并传递到 UseInternalServiceProvider(IServiceProvider) ,则在将替换服务传递给 EF 之前,应在该服务提供程序上对其进行配置。

替换服务获取的作用域与它所替换的 EF 服务的作用域相同。

ReplaceService<TService,TCurrentImplementation,TNewImplementation>()

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

此方法可用于替换可以在 EF 内部服务提供程序中多次合法注册的单个服务实例。

仅当 EF 正在生成和管理其内部服务提供程序时,才能使用此方法。 如果服务提供程序在外部生成并传递到 UseInternalServiceProvider(IServiceProvider) ,则在将替换服务传递给 EF 之前,应在该服务提供程序上对其进行配置。

替换服务获取的作用域与它所替换的 EF 服务的作用域相同。

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

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

仅当 EF 正在生成和管理其内部服务提供程序时,才能使用此方法。 如果服务提供程序在外部生成并传递到 UseInternalServiceProvider(IServiceProvider) ,则在将替换服务传递给 EF 之前,应在该服务提供程序上对其进行配置。

替换服务获取的作用域与它所替换的 EF 服务的作用域相同。

ReplaceService<TService,TImplementation>()

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

仅当 EF 正在生成和管理其内部服务提供程序时,才能使用此方法。 如果服务提供程序在外部生成并传递到 UseInternalServiceProvider(IServiceProvider) ,则在将替换服务传递给 EF 之前,应在该服务提供程序上对其进行配置。

替换服务获取的作用域与它所替换的 EF 服务的作用域相同。

(继承自 DbContextOptionsBuilder)
UseApplicationServiceProvider(IServiceProvider)

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

UseApplicationServiceProvider(IServiceProvider)

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

(继承自 DbContextOptionsBuilder)
UseInternalServiceProvider(IServiceProvider)

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

服务提供程序必须包含实体框架 (和) 所使用的数据库所需的所有服务。 实体框架服务可使用上的扩展方法进行注册 IServiceCollection 。 例如,Microsoft SQL Server 提供程序包含一个 AddEntityFrameworkSqlServer () 方法来添加所需的服务。

如果 IServiceProvider 具有或已 DbContextOptions DbContextOptions<TContext> 注册,则会将其用作此上下文实例的选项。

UseLoggerFactory(ILoggerFactory)

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

使用 "AddDbContext" 方法之一时,无需调用此方法。 "AddDbContext" 将确保 ILoggerFactory 从应用程序服务提供程序获取 EF 使用的。

如果应用程序通过调用设置内部服务提供程序,则不能使用此方法 UseInternalServiceProvider(IServiceProvider) 。 在这种情况下, ILoggerFactory 应直接在该服务提供程序中配置。

UseMemoryCache(IMemoryCache)

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

请注意,更改内存缓存可能会导致 EF 生成新的内部服务提供程序,这可能会导致性能问题。 通常情况下,给定应用程序将不会有多个或两个不同的实例。

如果应用程序通过调用设置内部服务提供程序,则不能使用此方法 UseInternalServiceProvider(IServiceProvider) 。 在这种情况下, IMemoryCache 应直接在该服务提供程序中配置。

UseModel(IModel)

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

UseQueryTrackingBehavior(QueryTrackingBehavior)

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

此方法设置使用这些选项创建的所有上下文的默认行为,但你可以使用 QueryTrackingBehavior 和方法对单个查询使用或来重写此行为 AsNoTracking<TEntity>(IQueryable<TEntity>) AsTracking<TEntity>(IQueryable<TEntity>)

默认值为 TrackAll。 这意味着更改跟踪器将跟踪从 LINQ 查询返回的所有实体的更改。

UseQueryTrackingBehavior(QueryTrackingBehavior)

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

此方法设置使用这些选项创建的所有上下文的默认行为,但你可以使用 QueryTrackingBehavior 和方法对单个查询使用或来重写此行为 AsNoTracking<TEntity>(IQueryable<TEntity>) AsTracking<TEntity>(IQueryable<TEntity>)

默认值为 TrackAll。 这意味着更改跟踪器将跟踪从 LINQ 查询返回的所有实体的更改。

(继承自 DbContextOptionsBuilder)

显式接口实现

IDbContextOptionsBuilderInfrastructure.AddOrUpdateExtension<TExtension>(TExtension)

向选项添加给定扩展。 如果已存在具有相同类型的现有扩展,则将替换它。

此方法旨在供扩展方法用来配置上下文。 它不应在应用程序代码中使用。

(继承自 DbContextOptionsBuilder)

扩展方法

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

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

UseCosmos(DbContextOptionsBuilder, String, String, 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)

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

请注意,这需要在 EF 内部服务提供程序中提供适当的服务。 通常,这会自动发生,但如果应用程序正在控制服务提供程序,则 AddEntityFrameworkProxies(IServiceCollection) 可能需要调用。

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

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

请注意,这需要在 EF 内部服务提供程序中提供适当的服务。 通常,这会自动发生,但如果应用程序正在控制服务提供程序,则 AddEntityFrameworkProxies(IServiceCollection) 可能需要调用。

UseLazyLoadingProxies(DbContextOptionsBuilder, Boolean)

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

请注意,这需要在 EF 内部服务提供程序中提供适当的服务。 通常,这会自动发生,但如果应用程序正在控制服务提供程序,则 AddEntityFrameworkProxies(IServiceCollection) 可能需要调用。

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

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

请注意,这需要在 EF 内部服务提供程序中提供适当的服务。 通常,这会自动发生,但如果应用程序正在控制服务提供程序,则 AddEntityFrameworkProxies(IServiceCollection) 可能需要调用。

UseSqlite(DbContextOptionsBuilder, Action<SqliteDbContextOptionsBuilder>)

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

在使用连接到数据库之前,必须设置连接或连接字符串 DbContext 。 使用设置连接 SetDbConnection(DatabaseFacade, DbConnection) 。 使用设置连接字符串 SetConnectionString(DatabaseFacade, String)

UseSqlite(DbContextOptionsBuilder, DbConnection, Action<SqliteDbContextOptionsBuilder>)

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

UseSqlite(DbContextOptionsBuilder, String, Action<SqliteDbContextOptionsBuilder>)

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

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

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

在使用连接到数据库之前,必须设置连接或连接字符串 DbContext 。 使用设置连接 SetDbConnection(DatabaseFacade, DbConnection) 。 使用设置连接字符串 SetConnectionString(DatabaseFacade, String)

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

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

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

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

UseSqlServer(DbContextOptionsBuilder, Action<SqlServerDbContextOptionsBuilder>)

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

在使用连接到数据库之前,必须设置连接或连接字符串 DbContext 。 使用设置连接 SetDbConnection(DatabaseFacade, DbConnection) 。 使用设置连接字符串 SetConnectionString(DatabaseFacade, String)

UseSqlServer(DbContextOptionsBuilder, DbConnection, Action<SqlServerDbContextOptionsBuilder>)

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

UseSqlServer(DbContextOptionsBuilder, String, Action<SqlServerDbContextOptionsBuilder>)

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

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

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

在使用连接到数据库之前,必须设置连接或连接字符串 DbContext 。 使用设置连接 SetDbConnection(DatabaseFacade, DbConnection) 。 使用设置连接字符串 SetConnectionString(DatabaseFacade, String)

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

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

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

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

适用于