DbContextOptionsBuilder 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
提供一個簡單的 API 表面來配置 DbContextOptions。 資料庫(以及其他擴充功能)通常會在這個物件上定義擴充方法,讓你能設定資料庫連線(以及其他選項)以用於特定情境。
public class DbContextOptionsBuilder : Microsoft.EntityFrameworkCore.Infrastructure.IDbContextOptionsBuilderInfrastructure
[System.Runtime.CompilerServices.Nullable(0)]
public class DbContextOptionsBuilder : Microsoft.EntityFrameworkCore.Infrastructure.IDbContextOptionsBuilderInfrastructure
type DbContextOptionsBuilder = class
interface IDbContextOptionsBuilderInfrastructure
[<System.Runtime.CompilerServices.Nullable(0)>]
type DbContextOptionsBuilder = class
interface IDbContextOptionsBuilderInfrastructure
Public Class DbContextOptionsBuilder
Implements IDbContextOptionsBuilderInfrastructure
- 繼承
-
DbContextOptionsBuilder
- 衍生
- 屬性
- 實作
備註
你可以用 DbContextOptionsBuilder 它來設定上下文,方法是覆寫 OnConfiguring(DbContextOptionsBuilder) 或建立外部的 Context DbContextOptions ,然後傳給上下文建構子。
更多資訊與範例請參見 使用 DbContextOptions 。
建構函式
| 名稱 | Description |
|---|---|
| DbContextOptionsBuilder() |
初始化一個未設定選項的新類別實例 DbContextOptionsBuilder 。 |
| DbContextOptionsBuilder(DbContextOptions) |
初始化類別的新實例 DbContextOptionsBuilder 以進一步配置給定 DbContextOptions的 。 |
屬性
| 名稱 | Description |
|---|---|
| IsConfigured |
會獲得一個值,表示是否有任何選項被設定。 |
| Options |
設定選項。 |
方法
| 名稱 | Description |
|---|---|
| AddInterceptors(IEnumerable<IInterceptor>) |
將實例加入 IInterceptor 上下文中已登記的實例。 |
| AddInterceptors(IInterceptor[]) |
將實例加入 IInterceptor 上下文中已登記的實例。 |
| 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>() |
以不同的實作取代特定服務合約的內部實體框架實作。 |
| ReplaceService<TService,TImplementation>() |
以不同的實作替換所有內部實體框架的服務合約實作。 |
| UseApplicationServiceProvider(IServiceProvider) |
設定 IServiceProvider 應用程式服務可從何處取得。 當使用 'AddDbContext' 或 'AddDbContextPool' 時,此方法會自動執行,因此很少需要呼叫此方法。 |
| UseAsyncSeeding(Func<DbContext,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() 或遷移後執行。 即使商店沒有做任何變更,該命令仍會被啟動。 |
明確介面實作
| 名稱 | Description |
|---|---|
| IDbContextOptionsBuilderInfrastructure.AddOrUpdateExtension<TExtension>(TExtension) |
會將給定的延伸加到選項中。 若已有同類型擴展,將被替換。 |
| IDbContextOptionsBuilderInfrastructure.RemoveExtension<TExtension>() |
移除該類型從選項中延伸的部分。 若不存在該類型的擴展,則為 no-op。 |