語言

HistoryRepository 類別

定義

一個用於存取「__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

包含歷史資料表的結構,還是 null 應該使用預設結構。

方法

名稱 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 腳本,當且僅當該識別碼的遷移已存在於歷史資料表時,才會產生 BEGIN SQL 區塊。

GetBeginIfNotExistsScript(String)

資料庫提供者會覆寫以產生一個 SQL 腳本,當且僅當該識別碼的遷移尚未存在於歷史資料表時,才會產生 BEGIN SQL 區塊。

GetCreateCommands()

回傳將建立歷史表的遷移指令。

GetCreateIfNotExistsScript()

資料庫提供者會覆寫以產生 SQL 腳本,當且僅當該歷史資料表尚未存在時才會建立。

GetCreateScript()

產生一個 SQL 腳本來建立歷史資料表。

GetDeleteScript(String)

產生一個 SQL 腳本,從歷史資料表中刪除一列。

GetEndIfScript()

資料庫提供者會覆寫以產生 SQL 腳本到 END 該 SQL 區塊。

GetInsertScript(HistoryRow)

產生一個 SQL 腳本,將一列插入歷史資料表。

InterpretExistsResult(Object)

解釋執行 ExistsSql的結果。

明確介面實作

名稱 Description
IHistoryRepository.CreateIfNotExists()

一個用於存取「__EFMigrationsHistory」表格的儲存庫基底類別,該表追蹤有關 EF 核心遷移的元資料,例如已套用哪些遷移。

IHistoryRepository.CreateIfNotExistsAsync(CancellationToken)

一個用於存取「__EFMigrationsHistory」表格的儲存庫基底類別,該表追蹤有關 EF 核心遷移的元資料,例如已套用哪些遷移。

適用於