EF CodeFirst: DropCreateDatabaseIfModelChanges ne fonctionne pas

J'utilise le code suivant dans mon Global.asax:

DbDatabase.SetInitializer<MyDBContext>
   (new DropCreateDatabaseIfModelChanges<MyDBContext>());

mais il ne semble pas fonctionner.

Bien que mon Modèle a changé et je suis en train d'utiliser l'un de la nouvelle table, il dit juste la table n'a pas pu être trouvé.

Invalid object name 'dbo.TableName'.

Si j'exécute ce cependant, il semble fonctionner, et la table est en cours de création:

DbDatabase.SetInitializer<MyDBContext>(new DropCreateDatabaseAlways<MyDBContext>());

Il n'mise à jour de ma base de données.

Qu'est-ce que je fais de mal?

Avez-vous modifier les conventions?
Non, je veux dire IncludeMetadataConvention. Avez-vous l'enlever? Avez-vous des EdmMetadata table dans votre base de données?
Avez-vous ajouter une table manuellement?
Il s'est avéré que les autorisations de l'utilisateur sur la base de données master. Bizarre que l'utilisation de DropCreateDatabaseAlways est n'a pas besoin d'autorisations sur la base de données master, où IfModelChanges.
Très intéressante. Je ne le savais pas. Poste en tant que réponse à votre question. Je vais upvote. Btw. veut-il dire qu'il SQL throws exception qui est avalé par EF?

OriginalL'auteur reinder | 2011-03-21