語言

DbContextOptionsBuilder<TContext> 類別

定義

提供一個簡單的 API 表面來配置 DbContextOptions<TContext>。 資料庫(以及其他擴充功能)通常會在這個物件上定義擴充方法,讓你能設定資料庫連線(以及其他選項)以用於特定情境。

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) 或建立外部的 Context DbContextOptions ,然後傳給上下文建構子。

更多資訊與範例請參見 使用 DbContextOptions 。

建構函式

名稱 Description
DbContextOptionsBuilder<TContext>()

初始化一個未設定選項的新類別實例 DbContextOptionsBuilder<TContext> 。

DbContextOptionsBuilder<TContext>(DbContextOptions<TContext>)

初始化類別的新實例 DbContextOptionsBuilder<TContext> 以進一步配置給定 DbContextOptions的 。

屬性

名稱 Description
IsConfigured

會獲得一個值,表示是否有任何選項被設定。

(繼承來源 DbContextOptionsBuilder)
Options

設定選項。

方法

名稱 Description
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>()

以不同的實作取代特定服務合約的內部實體框架實作。

ReplaceService<TService,TImplementation>()

以不同的實作替換所有內部實體框架的服務合約實作。

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() 或遷移後執行。 即使商店沒有做任何變更,該命令仍會被啟動。

明確介面實作

名稱 Description
IDbContextOptionsBuilderInfrastructure.AddOrUpdateExtension<TExtension>(TExtension)

會將給定的延伸加到選項中。 若已有同類型擴展,將被替換。

(繼承來源 DbContextOptionsBuilder)
IDbContextOptionsBuilderInfrastructure.RemoveExtension<TExtension>()

移除該類型從選項中延伸的部分。 若不存在該類型的擴展,則為 no-op。

(繼承來源 DbContextOptionsBuilder)

擴充方法

名稱 Description
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>)

配置 context 以連接 Azure Synapse 資料庫。

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

配置 context 以連接 Azure Synapse 資料庫。

UseAzureSynapse(DbContextOptionsBuilder, String, Action<AzureSynapseDbContextOptionsBuilder>)

配置 context 以連接 Azure Synapse 資料庫。

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

設定上下文以連接 Azure Synapse 資料庫,但一開始不設定任何 DbConnection 連接字串。

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

配置 context 以連接 Azure Synapse 資料庫。

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

配置 context 以連接 Azure Synapse 資料庫。

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

配置 context 以連接 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 一個共享文件以 root 資料庫。

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 一個共享文件以 root 資料庫。

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 資料庫。

適用於