Language

HistoryRepository クラス

定義

EF Core 移行に関するメタデータ (適用されている移行など) を追跡する '__EFMigrationsHistory' テーブルにアクセスするために使用されるリポジトリの基本クラス。

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 インスタンスがこのサービスの独自のインスタンスを使用することを意味します。 実装は、任意の有効期間で登録されている他のサービスに依存する場合があります。 実装はスレッド セーフである必要はありません。

詳細と例については、「 データベースの移行 」を参照してください。

コンストラクター

Name 説明
HistoryRepository(HistoryRepositoryDependencies)

このクラスの新しいインスタンスを初期化します。

HistoryRepository(IDatabaseCreator, IRawSqlCommandBuilder, IRelationalConnection, IDbContextOptions, IMigrationsModelDiffer, IMigrationsSqlGenerator, IRelationalAnnotationProvider, ISqlGenerationHelper)

この API はEntity Framework Core インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。 この API は、将来のリリースで変更または削除される可能性があります。

フィールド

Name 説明
DefaultTableName

移行履歴テーブルの既定の名前。

プロパティ

Name 説明
Dependencies

このサービスのリレーショナル プロバイダー固有の依存関係。

ExistsSql

データベース プロバイダーによってオーバーライドされ、履歴テーブルの存在をテストする SQL を生成します。

GetAppliedMigrationsSql

適用された移行を照会する SQL を生成します。

LockReleaseBehavior

これは、パブリック API と同じ互換性標準の対象ではなく、Entity Framework Core インフラストラクチャをサポートする内部 API です。 これは、任意のリリースで予告なしに変更または削除される可能性があります。 コード内で直接使用する場合は、細心の注意を払う必要があります。これを行うと、新しいEntity Framework Core リリースに更新するときにアプリケーションのエラーが発生する可能性があることを認識してください。

MigrationIdColumnName

移行識別子を保持する列の名前。

ProductVersionColumnName

Entity Framework 製品バージョンを含む列の名前。

SqlGenerationHelper

SQL を生成するためのヘルパー クラス。

TableName

履歴テーブル名。

TableSchema

履歴テーブルを含むスキーマ。既定のスキーマを使用する必要がある場合は null 。

メソッド

Name 説明
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の実行結果を解釈します。

明示的なインターフェイスの実装

Name 説明
IHistoryRepository.CreateIfNotExists()

EF Core 移行に関するメタデータ (適用されている移行など) を追跡する '__EFMigrationsHistory' テーブルにアクセスするために使用されるリポジトリの基本クラス。

IHistoryRepository.CreateIfNotExistsAsync(CancellationToken)

EF Core 移行に関するメタデータ (適用されている移行など) を追跡する '__EFMigrationsHistory' テーブルにアクセスするために使用されるリポジトリの基本クラス。

適用対象