36 votes

Les migrations Entity Framework ont arrêté de détecter les mises à jour de POCO

Je suis en utilisant Entity Framework Entity Framework migrations à mettre en œuvre la solution à l'aide de code-première et les migrations automatiques.

Il utilisé pour l'excellent travail mais, soudain, il s'arrêta de détecter les mises à jour que je fais pour ma POCO. Maintenant, quand j'ajoute une nouvelle propriété (très simple des propriétés telles que l'âge ou e-mail) et d'exécuter l' Update-Database, rien ne se passe, et il me donne ceci:

Spécifiez l'option-Verbose' drapeau pour afficher les commandes SQL exécutées au cours de la migration.
Trouvé 0 en attente explicite migrations: [].
L'ajout de graines de données (si la méthode substituée dans les Migrations des Paramètres de la classe).

et rien n'est mis à jour!

Quelqu'un a une idée de pourquoi ce qui se passe?

2voto

Oleksii G. Points 382

Cela peut être dans deux raisons:

  1. Il y a d'autres DbContext dans le code, c'est pourquoi les migrations automatiques ne pouvait pas décider, dont le contexte d'utilisation.
  2. Il y a quelques nouveaux changements, qui boucle une comparaison de schéma et modèle de code, donc EF ne peut tout simplement pas trouver la différence.

En général, les migrations automatiques sont simple et rapide à mettre en œuvre, mais il n'est pas sécurisé à utiliser. Sur un certain stade, ces migrations pourraient faire échouer.

Il y a plusieurs années, j'ai développé de minuscules ORM basé sur Linq2SQL, AcroDB Bibliothèque, et c'est à l'aide automigrations de Subsonique. Presque la même que EF migrations pouvez le faire maintenant. Il a été parfait sur de petits projets et de la petite quantité de données à traiter ou de changement, mais quand le projet a grandir dans 15+ tables, il est devenu un cauchemar. C'est pourquoi MS a annoncé le Code piloté par les migrations de ces derniers temps. Ils sont plus sécurisé et mieux pour le projet. Aussi, vous pouvez prendre un coup d'oeil à Migrator.Net (c'est un peu mieux que l'EF, par ce temps).

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