Sprache

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

A CancellationToken , um zu beobachten, während sie auf den Abschluss der Aufgabe warten.

Gibt zurück

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

Attribute

Ausnahmen

Wenn der CancellationToken Vorgang abgebrochen wird.

Hinweise

  • Wenn die Datenbank vorhanden ist und Tabellen vorhanden sind, wird keine Aktion ausgeführt. Es wird nichts getan, 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 Prototypen mithilfe von Entity Framework sofort zu EnsureDeletedAsync(CancellationToken) verwendenEnsureCreatedAsync(CancellationToken). Dadurch wird sichergestellt, dass sich die Datenbank vor jeder Ausführung des Test-/Prototyps in einem sauberen Zustand befindet. Beachten Sie jedoch, dass Die Daten in der Datenbank nicht beibehalten werden.

Beachten Sie, dass diese API **nicht** Migrationen zum Erstellen der Datenbank verwendet. Darüber hinaus kann die erstellte Datenbank nicht später mithilfe von Migrationen aktualisiert werden. Wenn Sie auf eine relationale Datenbank abzielen und Migrationen verwenden Microsoft.EntityFrameworkCore.RelationalDatabaseFacadeExtensions.MigrateAsync , können Sie sicherstellen, dass die Datenbank mithilfe von Migrationen erstellt wird und dass alle Migrationen angewendet wurden.

Entity Framework Core unterstützt nicht mehrere parallele Vorgänge, die auf derselben DbContext-Instanz 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 Vorgänge, die parallel ausgeführt werden. 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: