Język

DatabaseFacade.EnsureCreatedAsync(CancellationToken) Metoda

Definicja

Gwarantuje, że baza danych dla kontekstu istnieje.

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)

Parametry

cancellationToken
CancellationToken

Element do CancellationToken obserwowania podczas oczekiwania na ukończenie zadania.

Zwraca

Zadanie reprezentujące operację zapisywania asynchronicznego. Wynik zadania zawiera true informacje o tym, czy baza danych została utworzona, false jeśli już istniała.

Atrybuty

Wyjątki

Jeśli element CancellationToken zostanie anulowany.

Uwagi

  • Jeśli baza danych istnieje i ma jakiekolwiek tabele, nie zostanie podjęta żadna akcja. Nic nie robi się, aby upewnić się, że schemat bazy danych jest zgodny z modelem platformy Entity Framework.
  • Jeśli baza danych istnieje, ale nie ma żadnych tabel, model Entity Framework jest używany do tworzenia schematu bazy danych.
  • Jeśli baza danych nie istnieje, zostanie utworzona baza danych, a model programu Entity Framework zostanie użyty do utworzenia schematu bazy danych.

Podczas testowania lub tworzenia prototypów przy użyciu platformy Entity Framework często stosuje EnsureCreatedAsync(CancellationToken) się następujące instrukcje EnsureDeletedAsync(CancellationToken) . Gwarantuje to, że baza danych jest w stanie czystym przed każdym wykonaniem testu/prototypu. Należy jednak pamiętać, że dane w bazie danych nie są zachowywane.

Należy pamiętać, że ten interfejs API **nie** używa migracji do tworzenia bazy danych. Ponadto nie można później zaktualizować utworzonej bazy danych przy użyciu migracji. Jeśli używasz relacyjnej bazy danych i migracji, możesz użyć Microsoft.EntityFrameworkCore.RelationalDatabaseFacadeExtensions.MigrateAsync polecenia , aby upewnić się, że baza danych jest tworzona przy użyciu migracji i że zastosowano wszystkie migracje.

Entity Framework Core nie obsługuje wielu równoległych operacji uruchamianych w tym samym wystąpieniu dbContext. Obejmuje to zarówno równoległe wykonywanie zapytań asynchronicznych, jak i wszelkie jawne współbieżne użycie z wielu wątków. Dlatego zawsze czekaj na wywołania asynchroniczne natychmiast lub używaj oddzielnych wystąpień dbContext dla operacji wykonywanych równolegle. Aby uzyskać więcej informacji i przykładów, zobacz Unikanie problemów z wątkami dbContext .

Aby uzyskać więcej informacji i przykładów, zobacz Zarządzanie schematami baz danych za pomocąinterfejsów API tworzenia bazy danych i programu EF Core.

Dotyczy