Share via


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 a ser observado enquanto aguarda a conclusão da tarefa.

Retornos

Uma tarefa que representa a operação de salvar 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 padrão CancellationToken for cancelado.

Comentários

  • Se o banco de dados existir e tiver tabelas, nenhuma ação será tomada. 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 a seguir EnsureDeletedAsync(CancellationToken) ao testar ou criar 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. Observe, no entanto, que os dados no banco de dados não são preservados.

Observe que essa API usa **not** 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.

O 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 Evitando problemas de threading DbContext para obter mais informações e exemplos.

Consulte Gerenciando 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