Udostępnij za pośrednictwem


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 CancellationToken do obserwowania podczas oczekiwania na ukończenie zadania.

Zwraca

Zadanie reprezentujące operację zapisywania asynchronicznego. Wynik zadania zawiera true , 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 jest wykonywane, 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, baza danych zostanie utworzona, a model platformy Entity Framework zostanie użyty do utworzenia schematu bazy danych.

Często używa EnsureCreatedAsync(CancellationToken) się ich natychmiast podczas EnsureDeletedAsync(CancellationToken) testowania lub tworzenia prototypów przy użyciu programu Entity Framework. 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 została utworzona przy użyciu migracji i że zastosowano wszystkie migracje.

Program 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. W związku z tym 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 baz danych i platformy EF Core.

Dotyczy