DatabaseFacade.EnsureCreatedAsync(CancellationToken) Método

Definición

Garantiza que existe la base de datos para el contexto.

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

Que CancellationToken se debe observar mientras se espera a que se complete la tarea.

Devoluciones

Tarea que representa la operación de guardado asincrónico. El resultado de la tarea contiene true si se crea la base de datos, false si ya existía.

Atributos

Excepciones

Comentarios

  • Si la base de datos existe y tiene tablas, no se realiza ninguna acción. No se hace nada para asegurarse de que el esquema de base de datos es compatible con el modelo de Entity Framework.
  • Si la base de datos existe pero no tiene ninguna tabla, se usa el modelo de Entity Framework para crear el esquema de la base de datos.
  • Si la base de datos no existe, se crea la base de datos y se usa el modelo de Entity Framework para crear el esquema de la base de datos.

Es habitual usar EnsureCreatedAsync(CancellationToken) inmediatamente después EnsureDeletedAsync(CancellationToken) al probar o crear prototipos mediante Entity Framework. Esto garantiza que la base de datos esté en un estado limpio antes de cada ejecución del prototipo o la prueba. Sin embargo, tenga en cuenta que los datos de la base de datos no se conservan.

Tenga en cuenta que esta API usa **no** migraciones para crear la base de datos. Además, la base de datos que se crea no se puede actualizar posteriormente mediante migraciones. Si tiene como destino una base de datos relacional y usa migraciones, puede usar Microsoft.EntityFrameworkCore.RelationalDatabaseFacadeExtensions.MigrateAsync para asegurarse de que la base de datos se crea mediante migraciones y que se han aplicado todas las migraciones.

Entity Framework Core no admite varias operaciones paralelas que se ejecutan en la misma instancia de DbContext. Esto incluye la ejecución en paralelo de consultas asincrónicas y cualquier uso simultáneo explícito desde varios subprocesos. Por lo tanto, espere siempre llamadas asincrónicas inmediatamente o use instancias de DbContext independientes para las operaciones que se ejecutan en paralelo. Consulte Evitar problemas de subprocesos de DbContext para obtener más información y ejemplos.

Consulte Administración de esquemas de base de datos con EF Core y API de creación de bases de datos para obtener más información y ejemplos.

Se aplica a