Partager via


DatabaseFacade.EnsureCreatedAsync(CancellationToken) Méthode

Définition

Garantit l’existence de la base de données pour le contexte.

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)

Paramètres

cancellationToken
CancellationToken

CancellationToken à observer en attendant la fin de la tâche.

Retours

Tâche qui représente l’opération d’écriture d’enregistrement asynchrone. Le résultat de la tâche indique true si la base de données est créée, false si elle existe déjà.

Attributs

Exceptions

Remarques

  • Si la base de données existe et contient des tables, aucune action n’est effectuée. Rien n’est fait pour garantir la compatibilité du schéma de base de données avec le modèle Entity Framework.
  • Si la base de données existe mais n’a pas de tables, le modèle Entity Framework est utilisé pour créer le schéma de base de données.
  • Si la base de données n’existe pas, la base de données est créée et le modèle Entity Framework est utilisé pour créer le schéma de base de données.

Il est courant d’utiliser EnsureCreatedAsync(CancellationToken) immédiatement après EnsureDeletedAsync(CancellationToken) lors du test ou du prototypage à l’aide d’Entity Framework. Cela garantit que la base de données est dans un état propre avant chaque exécution du test/prototype. Notez toutefois que les données de la base de données ne sont pas conservées.

Notez que cette API **not** utilise des migrations pour créer la base de données. En outre, la base de données créée ne peut pas être mise à jour ultérieurement à l’aide de migrations. Si vous ciblez une base de données relationnelle et que vous utilisez des migrations, vous pouvez utiliser Microsoft.EntityFrameworkCore.RelationalDatabaseFacadeExtensions.MigrateAsync pour vous assurer que la base de données est créée à l’aide de migrations et que toutes les migrations ont été appliquées.

Entity Framework Core ne prend pas en charge plusieurs opérations parallèles exécutées sur le même instance DbContext. Cela inclut l’exécution parallèle de requêtes asynchrones et toute utilisation simultanée explicite de plusieurs threads. Par conséquent, attendez toujours les appels asynchrones immédiatement ou utilisez des instances DbContext distinctes pour les opérations qui s’exécutent en parallèle. Pour plus d’informations et d’exemples, consultez Éviter les problèmes de thread dbContext .

Pour plus d’informations et d’exemples, consultez Gestion des schémas de base de données avec EF Core et les API de création de base de données.

S’applique à