DatabaseFacade.EnsureCreatedAsync(CancellationToken) メソッド

定義

コンテキストのデータベースが存在することを確認します。

public virtual System.Threading.Tasks.Task<bool> EnsureCreatedAsync (System.Threading.CancellationToken cancellationToken = default);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Migrations operations require building the design-time model which is not supported with NativeAOT Use a migration bundle or an alternate way of executing migration operations.")]
public virtual System.Threading.Tasks.Task<bool> EnsureCreatedAsync (System.Threading.CancellationToken cancellationToken = default);
abstract member EnsureCreatedAsync : System.Threading.CancellationToken -> System.Threading.Tasks.Task<bool>
override this.EnsureCreatedAsync : System.Threading.CancellationToken -> System.Threading.Tasks.Task<bool>
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Migrations operations require building the design-time model which is not supported with NativeAOT Use a migration bundle or an alternate way of executing migration operations.")>]
abstract member EnsureCreatedAsync : System.Threading.CancellationToken -> System.Threading.Tasks.Task<bool>
override this.EnsureCreatedAsync : System.Threading.CancellationToken -> System.Threading.Tasks.Task<bool>
Public Overridable Function EnsureCreatedAsync (Optional cancellationToken As CancellationToken = Nothing) As Task(Of Boolean)

パラメーター

cancellationToken
CancellationToken

CancellationTokenタスクの完了を待機している間に観察する 。

戻り値

非同期の保存操作を表すタスク。 タスクの結果には、truefalseデータベースが既に作成されている場合は が含まれます。

属性

例外

CancellationToken が取り消されている場合。

注釈

  • データベースが存在し、テーブルがある場合、アクションは実行されません。 データベース スキーマが Entity Framework モデルと互換性があることを確認するために何も行われません。
  • データベースが存在するがテーブルがない場合は、Entity Framework モデルを使用してデータベース スキーマを作成します。
  • データベースが存在しない場合は、データベースが作成され、Entity Framework モデルを使用してデータベース スキーマが作成されます。

Entity Framework を使用 EnsureCreatedAsync(CancellationToken) してテストまたはプロトタイプを作成する場合は、直後 EnsureDeletedAsync(CancellationToken) にを使用するのが一般的です。 これにより、テスト/プロトタイプの各実行前に、データベースがクリーン状態になります。 ただし、データベース内のデータは保持されないことに注意してください。

この API では、データベースの作成に移行が使用されないことに注意してください。 さらに、後で移行を使用して作成されたデータベースを更新することはできません。 リレーショナル データベースを対象とし、移行を使用している場合は、 を使用 Microsoft.EntityFrameworkCore.RelationalDatabaseFacadeExtensions.MigrateAsync して、移行を使用してデータベースが作成され、すべての移行が適用されていることを確認できます。

Entity Framework Core では、同じ DbContext インスタンスで複数の並列操作を実行することはできません。 これには、非同期クエリの並列実行と、複数のスレッドからの明示的な同時使用の両方が含まれます。 そのため、非同期呼び出しは常にすぐに待機するか、並列で実行される操作には個別の DbContext インスタンスを使用します。 詳細と例については、「 DbContext スレッドの問題を回避する 」を参照してください。

詳細と例については、「EF Core とデータベース作成 API を使用したデータベース スキーマの管理」を参照してください。

適用対象