DatabaseFacade.EnsureCreatedAsync(CancellationToken) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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.