J'ai utilisé Entity Framework 4.3 sur une base de données existante et j'essaie de répondre à un certain nombre de scénarios.
Tout d'abord, si je supprime ma base de données, je voudrais que EF la recrée à partir de zéro. J'ai utilisé avec succès un initialisateur de base de données CreateDatabaseIfNotExists pour cela.
Deuxièmement, si je mets à jour mon modèle et que la base de données existe déjà, je voudrais que la base de données soit mise à jour automatiquement - j'ai utilisé avec succès Entity Framework 4.3 Migrations pour cela.
Voici donc ma question. Disons que j'ajoute une nouvelle table à mon modèle qui nécessite des données de référence, quelle est la meilleure façon de s'assurer que ces données sont créées à la fois lorsque l'initialisateur de base de données s'exécute et lorsque la migration s'exécute. Je souhaite que les données soient créées lorsque je crée la base de données à partir de zéro et également lorsque la base de données est mise à jour à la suite d'une migration.
Dans certains exemples de migrations EF, j'ai vu des personnes utiliser la fonction SQL() dans la méthode UP de la migration pour créer des données d'amorçage, mais si possible, je préférerais utiliser le contexte pour créer les données d'amorçage (comme on le voit dans la plupart des exemples d'initialisation de base de données), car il me semble étrange d'utiliser du sql pur alors que l'idée même d'EF est d'abstraire cela. J'ai essayé d'utiliser le contexte dans la méthode UP, mais pour une raison quelconque, il ne pensait pas qu'une table créée lors de la migration existait lorsque j'ai essayé d'ajouter les données d'amorçage directement sous l'appel à la création de la table.
Tout conseil est le bienvenu.