41 votes

EF Migrations for Database-first approche ?

Nous utilisons la première approche de base de données avec EntityFramework. Nous avons plusieurs clients et lorsque nous déployons une nouvelle version du produit, nous appliquons désormais les modifications du schéma de base de données « manuellement » avec des outils tels que SQL Compare .

Existe-t-il un moyen par lequel EF Migrations pourrait aider à appliquer automatiquement les modifications à la base de données des clients ?

20voto

Paul Points 8943

Pour autant que je sache, EF Migrations est un produit destiné à CodeFirst et ne prend pas en charge les opérations Database First.

CodeFirst suppose que vous n'apporterez jamais de modifications manuellement à la base de données. Toutes les modifications apportées à la base de données passeront par les premières migrations de code.

2voto

tatigo Points 508

À partir d'Entity Framework 4.1, vous pouvez effectuer des migrations Code First avec une base de données existante .

Vous avez donc d'abord la base de données, créez le modèle, activez les migrations.

La chose la plus importante à retenir est que vous devez exécuter Enable-Migrations avant d'apporter des modifications au schéma, car il doit être synchronisé entre votre base de données et votre code.

0voto

Harish Bhatt Points 300

Voici ma compréhension sur ce sujet, j'espère que cela aidera d'autres dans ce domaine. Comment faire des migrations dans la première approche de la base de données

0voto

Recherchez simplement votre objet enfant DbContext et recherchez cette méthode :

 protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        throw new UnintentionalCodeFirstException();
    }

Si vous commentez ceci :

 throw new UnintentionalCodeFirstException();

alors l'exception ne serait pas levée lors de l'opération de migration. Comme vous pouvez l'imaginer, la migration recherche cette partie pour savoir quelles sont les configurations pour chaque entité avec quelle(s) table(s).

Désolé si je ne suis pas allé avec plus de détails, si vous en souhaitez plus, je serai heureux de modifier cela et de l'améliorer !

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X