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 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
CancellationToken Pokud je zrušena.
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
Entity Framework