DatabaseFacade.EnsureCreatedAsync(CancellationToken) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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
Pokud je zrušena CancellationToken .
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í .