HistoryRepository 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
一個用於存取「__EFMigrationsHistory」表格的儲存庫基底類別,該表追蹤有關 EF 核心遷移的元資料,例如已套用哪些遷移。
public abstract class HistoryRepository : Microsoft.EntityFrameworkCore.Migrations.IHistoryRepository
[System.Runtime.CompilerServices.Nullable(0)]
public abstract class HistoryRepository : Microsoft.EntityFrameworkCore.Migrations.IHistoryRepository
type HistoryRepository = class
interface IHistoryRepository
[<System.Runtime.CompilerServices.Nullable(0)>]
type HistoryRepository = class
interface IHistoryRepository
Public MustInherit Class HistoryRepository
Implements IHistoryRepository
- 繼承
-
HistoryRepository
- 屬性
- 實作
備註
資料庫提供者必須繼承此類別,才能實作提供者專屬功能。
服役期間為 Scoped。 這表示每個 DbContext 實例都會使用自己的服務實例。 實作方式可能取決於其他註冊於任何生命週期的服務。 實作不需要執行緒安全。
更多資訊與範例請參見 資料庫遷移 。
建構函式
| 名稱 | Description |
|---|---|
| HistoryRepository(HistoryRepositoryDependencies) |
初始化此類別的新實例。 |
| HistoryRepository(IDatabaseCreator, IRawSqlCommandBuilder, IRelationalConnection, IDbContextOptions, IMigrationsModelDiffer, IMigrationsSqlGenerator, IRelationalAnnotationProvider, ISqlGenerationHelper) |
此 API 支援 Entity Framework Core 基礎架構,並非設計用來直接從您的程式碼中使用。 此 API 可能會在未來版本中變更或移除。 |
欄位
| 名稱 | Description |
|---|---|
| DefaultTableName |
遷移歷史表的預設名稱。 |
屬性
| 名稱 | Description |
|---|---|
| Dependencies |
此服務的關聯提供者專屬相依關係。 |
| ExistsSql |
資料庫提供者會覆寫以產生 SQL 來測試歷史資料表的存在。 |
| GetAppliedMigrationsSql |
產生 SQL 來查詢已套用的遷移。 |
| LockReleaseBehavior |
這是一個內部 API,支援 Entity Framework Core 基礎架構,且不受公開 API 相同的相容性標準約束。 該內容可能會在任何新聞稿中未經通知而更改或移除。 你應該只在程式碼中直接使用它,並且要非常謹慎,並且要知道這樣做可能會導致更新到新的 Entity Framework Core 版本時應用程式失敗。 |
| MigrationIdColumnName |
存放遷移識別碼的欄位名稱。 |
| ProductVersionColumnName |
包含 Entity Framework 產品版本的欄位名稱。 |
| SqlGenerationHelper |
一個用於生成 SQL 的輔助類別。 |
| TableName |
歷史表名稱。 |
| TableSchema |
包含歷史資料表的結構,還是 |
方法
| 名稱 | Description |
|---|---|
| AcquireDatabaseLock() |
他獲得了資料庫的專屬鎖定。 |
| AcquireDatabaseLockAsync(CancellationToken) |
他獲得了資料庫的專屬鎖定。 |
| ConfigureTable(EntityTypeBuilder<HistoryRow>) |
配置映射到歷史表的實體類型。 |
| Create() |
建立歷史表。 |
| CreateAsync(CancellationToken) |
建立歷史表。 |
| EnsureModel() |
這是一個內部 API,支援 Entity Framework Core 基礎架構,且不受公開 API 相同的相容性標準約束。 該內容可能會在任何新聞稿中未經通知而更改或移除。 你應該只在程式碼中直接使用它,並且要非常謹慎,並且要知道這樣做可能會導致更新到新的 Entity Framework Core 版本時應用程式失敗。 |
| Exists() |
檢查歷史表是否存在。 |
| ExistsAsync(CancellationToken) |
檢查歷史表是否存在。 |
| GetAppliedMigrations() |
查詢所有已套用遷移的歷史表。 |
| GetAppliedMigrationsAsync(CancellationToken) |
查詢所有已套用遷移的歷史表。 |
| GetBeginIfExistsScript(String) |
資料庫提供者會覆寫以產生一個 SQL 腳本,當且僅當該識別碼的遷移已存在於歷史資料表時,才會產生 |
| GetBeginIfNotExistsScript(String) |
資料庫提供者會覆寫以產生一個 SQL 腳本,當且僅當該識別碼的遷移尚未存在於歷史資料表時,才會產生 |
| GetCreateCommands() |
回傳將建立歷史表的遷移指令。 |
| GetCreateIfNotExistsScript() |
資料庫提供者會覆寫以產生 SQL 腳本,當且僅當該歷史資料表尚未存在時才會建立。 |
| GetCreateScript() |
產生一個 SQL 腳本來建立歷史資料表。 |
| GetDeleteScript(String) |
產生一個 SQL 腳本,從歷史資料表中刪除一列。 |
| GetEndIfScript() |
資料庫提供者會覆寫以產生 SQL 腳本到 |
| GetInsertScript(HistoryRow) |
產生一個 SQL 腳本,將一列插入歷史資料表。 |
| InterpretExistsResult(Object) |
解釋執行 ExistsSql的結果。 |
明確介面實作
| 名稱 | Description |
|---|---|
| IHistoryRepository.CreateIfNotExists() |
一個用於存取「__EFMigrationsHistory」表格的儲存庫基底類別,該表追蹤有關 EF 核心遷移的元資料,例如已套用哪些遷移。 |
| IHistoryRepository.CreateIfNotExistsAsync(CancellationToken) |
一個用於存取「__EFMigrationsHistory」表格的儲存庫基底類別,該表追蹤有關 EF 核心遷移的元資料,例如已套用哪些遷移。 |