Entity Framework 4.1 Le modèle de sauvegarde le contexte a changé depuis la base de données a été créé, immédiatement après la création de DB

Je suis en train de travailler sur un projet qui utilise Entity Framework 4.1 pour la persistance de nos différents objets de la base de données (premier code).

Je suis en train de tester dans Visual Studio, avec un local SQL Express DB, et notre serveur Jenkins déploie commis code d'un serveur de test. Quand cela arrive, je change temporairement de mon local de la chaîne de connexion pour pointer vers le test de serveur de base de données et d'exécuter un test de l'unité de re-créer la base de données de test afin qu'il corresponde à nos dernières entités, etc.

J'ai récemment remarqué que notre serveur de test donne cette erreur:

Le modèle de la sauvegarde de la " EntityFrameworkUnitOfWork contexte a changé depuis la base de données a été créé. Soit manuellement supprimer/mettre à jour la base de données, ou l'appel de la Base de données.SetInitializer avec un IDatabaseInitializer instance. Par exemple, le DropCreateDatabaseIfModelChanges stratégie sera automatiquement supprimer et recréer la base de données, et éventuellement de graines avec de nouvelles données.

C'est généralement une indication que notre code a changé et j'ai besoin d'exécuter le test de l'unité de re-créer la base de données. Sauf que je viens de faire ça! Je ne crois pas qu'il existe quelque chose de mal avec notre processus de déploiement de la Dll sur le serveur de test semblent être les mêmes versions que dans mon environnement local. Existe-il d'autres paramètres ou facteurs de l'environnement qui peut provoquer cette erreur sur le modèle ayant changé depuis la base de données a été créé?

Je suis nouveau ici - merci pour toute aide!

  • Pourriez-vous utiliser la méthode System.Data.Entity.Infrastructure.EdmMetadata.TryGetModelHash(YourDbContext) pour obtenir le ModelHash et essayer sur votre PC local et le testserver pour voir si elles sont différentes?
  • Avez-vous d'exécuter l'outil personnalisé afin de régénérer le contexte ou POCO après avoir régénéré base de données ?
  • Oui les hachages ne semblent être différents.
  • Pas sûr à 100% ce que tu veux dire. J'ai utilisé la Base de données.SetInitializer avec DropCreateDatabaseAlways DBContext pour régénérer la DB. Je suppose que ce serait POCO?
InformationsquelleAutor DaveBeta | 2011-10-28