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 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.