Sdílet prostřednictvím


DatabaseFacade.EnsureCreatedAsync(CancellationToken) Metoda

Definice

Zajišťuje, že databáze pro daný kontext existuje.

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

K CancellationToken pozorování při čekání na dokončení úlohy.

Návraty

Úloha, která představuje asynchronní operaci uložení. Výsledek úlohy obsahuje true informace o tom, jestli je databáze vytvořená, false pokud už existovala.

Atributy

Výjimky

Poznámky

  • Pokud databáze existuje a obsahuje tabulky, neprovedou se žádné akce. Pro zajištění kompatibility schématu databáze s modelem Entity Framework se nic neděje.
  • Pokud databáze existuje, ale nemá žádné tabulky, použije se k vytvoření schématu databáze model Entity Framework.
  • Pokud databáze neexistuje, vytvoří se databáze a k vytvoření schématu databáze se použije model Entity Framework.

Při testování nebo vytváření prototypů pomocí Entity Frameworku se běžně používá EnsureCreatedAsync(CancellationToken) okamžitě následující EnsureDeletedAsync(CancellationToken) . Tím se zajistí, že databáze bude před každým spuštěním testu nebo prototypu v čistém stavu. Mějte ale na paměti, že data v databázi se nezachovají.

Upozorňujeme, že toto rozhraní API k vytvoření databáze nepoužívá migrace. Vytvořenou databázi navíc není možné později aktualizovat pomocí migrací. Pokud cílíte na relační databázi a používáte migrace, můžete pomocí příkazu Microsoft.EntityFrameworkCore.RelationalDatabaseFacadeExtensions.MigrateAsync zajistit, aby se databáze vytvořila pomocí migrací a aby se použily všechny migrace.

Entity Framework Core nepodporuje spouštění více paralelních operací ve stejné instanci DbContext. To zahrnuje paralelní spouštění asynchronních dotazů i jakékoli explicitní souběžné používání z více vláken. Proto vždy okamžitě vyčkejte na asynchronní volání nebo pro paralelně spouštěné operace používejte samostatné instance DbContext. Další informace a příklady najdete v tématu Zabránění problémům s vytvářením vláken DbContext .

Další informace a příklady najdete v tématu Správa schémat databáze pomocí EF Core a rozhraní API pro vytváření databází .

Platí pro