DatabaseFacade.EnsureCreatedAsync(CancellationToken) Methode

Definition

Stellt sicher, dass die Datenbank für den Kontext vorhanden ist.

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)

Parameter

cancellationToken
CancellationToken

Ein CancellationToken , der beobachtet werden soll, während auf den Abschluss der Aufgabe gewartet wird.

Gibt zurück

Eine Aufgabe, die den asynchronen Speichervorgang darstellt. Das Vorgangsergebnis enthält true , ob die Datenbank erstellt wird, false wenn sie bereits vorhanden ist.

Attribute

Ausnahmen

Hinweise

  • Wenn die Datenbank vorhanden ist und Tabellen enthält, wird keine Aktion ausgeführt. Es wird nichts unternommen, um sicherzustellen, dass das Datenbankschema mit dem Entity Framework-Modell kompatibel ist.
  • Wenn die Datenbank vorhanden ist, aber keine Tabellen enthält, wird das Entity Framework-Modell verwendet, um das Datenbankschema zu erstellen.
  • Wenn die Datenbank nicht vorhanden ist, wird die Datenbank erstellt, und das Entity Framework-Modell wird zum Erstellen des Datenbankschemas verwendet.

Es ist üblich, beim Testen oder Erstellen von Prototypen mithilfe von Entity Framework sofort im Anschluss EnsureDeletedAsync(CancellationToken) zu verwendenEnsureCreatedAsync(CancellationToken). Dadurch wird sichergestellt, dass sich die Datenbank vor jeder Ausführung des Tests/Prototyps in einem sauber Zustand befindet. Beachten Sie jedoch, dass die Daten in der Datenbank nicht beibehalten werden.

Beachten Sie, dass diese API **nicht** Migrationen verwendet, um die Datenbank zu erstellen. Darüber hinaus kann die erstellte Datenbank nicht später mithilfe von Migrationen aktualisiert werden. Wenn Sie eine relationale Datenbank als Ziel verwenden und Migrationen verwenden, können Sie verwenden Microsoft.EntityFrameworkCore.RelationalDatabaseFacadeExtensions.MigrateAsync , um sicherzustellen, dass die Datenbank mithilfe von Migrationen erstellt und alle Migrationen angewendet wurden.

Entity Framework Core unterstützt nicht mehrere parallele Vorgänge, die auf demselben DbContext-instance ausgeführt werden. Dies schließt die parallele Ausführung von asynchronen Abfragen und jede explizite gleichzeitige Verwendung aus mehreren Threads ein. Warten Sie daher immer sofort auf asynchrone Aufrufe, oder verwenden Sie separate DbContext-Instanzen für parallel ausgeführte Vorgänge. Weitere Informationen und Beispiele finden Sie unter Vermeiden von DbContext-Threadingproblemen .

Weitere Informationen und Beispiele finden Sie unter Verwalten von Datenbankschemas mit EF Core - und Datenbankerstellungs-APIs .

Gilt für: