Jazyk

DatabaseFacade.EnsureCreatedAsync(CancellationToken) Metoda

Definice

Zajišťuje, že databáze pro 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

A CancellationToken , která se má sledovat při čekání na dokončení úkolu.

Návraty

Úloha, která představuje asynchronní operaci uložení. Výsledek úkolu obsahuje true , pokud je databáze vytvořená, false pokud už existuje.

Atributy

Výjimky

Poznámky

  • Pokud databáze existuje a obsahuje nějaké tabulky, není provedena žádná akce. Nic se neprovede, aby bylo zajištěno, že schéma databáze je kompatibilní s modelem Entity Framework.
  • Pokud databáze existuje, ale neobsahuje žádné tabulky, použije se k vytvoření schématu databáze model Entity Framework.
  • Pokud databáze neexistuje, vytvoří se databáze a model Entity Framework se použije k vytvoření schématu databáze.

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 je databáze v čistém stavu před každým spuštěním testu nebo prototypu. Všimněte si však, že data v databázi se nezachovají.

Upozorňujeme, že toto rozhraní API k vytvoření databáze nepoužívá migrace. Kromě toho není možné databázi, která je vytvořena, později aktualizovat pomocí migrací. Pokud cílíte na relační databázi a používáte migrace, můžete ji použít Microsoft.EntityFrameworkCore.RelationalDatabaseFacadeExtensions.MigrateAsync k zajištění vytvoření databáze pomocí migrací a použití všech migrací.

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 čekejte asynchronní volání okamžitě nebo použijte samostatné instance DbContext pro operace, které se spouští paralelně. Další informace a příklady najdete v tématu Zabránění problémům s vlákny DbContext .

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

Platí pro