Idioma

DatabaseFacade.EnsureCreatedAsync(CancellationToken) Método

Definição

Garante que o banco de dados para o contexto exista.

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)

Parâmetros

cancellationToken
CancellationToken

Um CancellationToken para observar enquanto aguarda a conclusão da tarefa.

Retornos

Uma tarefa que representa a operação de salvamento assíncrona. O resultado da tarefa conterá true se o banco de dados for criado, false se ele já existir.

Atributos

Exceções

Se o CancellationToken valor for cancelado.

Comentários

  • Se o banco de dados existir e tiver tabelas, nenhuma ação será executada. Nada é feito para garantir que o esquema de banco de dados seja compatível com o modelo do Entity Framework.
  • Se o banco de dados existir, mas não tiver tabelas, o modelo do Entity Framework será usado para criar o esquema de banco de dados.
  • Se o banco de dados não existir, o banco de dados será criado e o modelo do Entity Framework será usado para criar o esquema de banco de dados.

É comum usar EnsureCreatedAsync(CancellationToken) imediatamente EnsureDeletedAsync(CancellationToken) após o teste ou a criação de protótipos usando o Entity Framework. Isso garante que o banco de dados esteja em um estado limpo antes de cada execução do teste/protótipo. No entanto, observe que os dados no banco de dados não são preservados.

Observe que essa API **não** usa migrações para criar o banco de dados. Além disso, o banco de dados criado não pode ser atualizado posteriormente usando migrações. Se você estiver direcionando um banco de dados relacional e usando migrações, poderá usar Microsoft.EntityFrameworkCore.RelationalDatabaseFacadeExtensions.MigrateAsync para garantir que o banco de dados seja criado usando migrações e que todas as migrações tenham sido aplicadas.

Entity Framework Core não dá suporte a várias operações paralelas que estão sendo executadas na mesma instância DbContext. Isso inclui a execução paralela de consultas assíncronas e qualquer uso simultâneo explícito de vários threads. Portanto, sempre aguarde chamadas assíncronas imediatamente ou use instâncias DbContext separadas para operações executadas em paralelo. Consulte Como evitar problemas de threading DbContext para obter mais informações e exemplos.

Consulte Como gerenciar esquemas de banco de dados comAPIs de criação de banco de dados e EF Core para obter mais informações e exemplos.

Aplica-se a