Le modèle de la sauvegarde de la "DataContext" contexte a changé depuis la base de données a été créé

Je suis en train d'utiliser le Premier Code avec les Migrations. Même si il n'y a aucune modification à mon modèle, je suis une exception. Quand j'ajoute une migration, le haut et le bas sont vides, mais j'obtiens une erreur d'exécution avec le message comme suit:

Une exception de type 'System.InvalidOperationException' s'est produite dans
EntityFramework.dll, mais n'a pas été traitée dans le code utilisateur

Informations supplémentaires: Le modèle de la sauvegarde de la " MyDataContext contexte
a changé depuis la base de données a été créé. Pensez à utiliser le Premier Code
Les Migrations à la mise à jour de la base de données (http://go.microsoft.com/fwlink/?

Mon architecture est la suivante:

  • DataAccess projet qui comprend le contexte, fluide configurations et les migrations code
  • Projet de modèle qui contient les classes poco
  • MVC, Web API et des projets qui contiennent chacune les connexions chaîne web respectifs.les fichiers de configuration.

En outre, j'ai le code suivant:

DbInitializer

public static MyDataContext Create()
{
   Database.SetInitializer(new MigrateDatabaseToLatestVersion<MyDataAccess.MyDataContext, MyDataAccess.Migrations.Configuration>());
   return new MyDataContext(ConfigurationManager.ConnectionStrings["MyDataContext"].ConnectionString, null);
}

J'ai commencé avec AutomaticMigrationsEnabled = false; dans la Configuration de la migration constructeur, que c'était ma compréhension que cela permettrait à l' (et besoin) de moi pour avoir plus de contrôle sur le moment où les migrations ont été appliquées. J'ai aussi essayé de mettre ce paramètre à true, mais avec le même résultat.

J'ai ajouté une nouvelle migration lors de la réception de cette erreur, et la méthode était vide. J'ai mis à jour la base de données pour cette nouvelle migration, et un dossier a été créé dans le _migrationHistory table, mais j'ai toujours le message d'erreur quand j'essaye d'exécuter l'application. Aussi, la graine de données n'a pas été ajouté à la base de données.

protected override void Seed(MyDataAccess.MyDataContext context)
{
            IdentityResult ir;

            var appDbContext = new ApplicationDbContext();
            var roleManager = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(appDbContext));
            ir = roleManager.Create(new IdentityRole("Admin"));
            ir = roleManager.Create(new IdentityRole("Active"));
            ir = roleManager.Create(new IdentityRole("InActive"));

            var userNamager = new UserManager<User>(new UserStore<User>(appDbContext));

            // assign default admin
            var admin = new User { UserName = "administrator", Email = "[email protected]" };
            ir = userNamager.Create(admin, "myp@55word");

            ir = userNamager.AddToRole(admin.Id, "Admin");
 }

public class ApplicationDbContext : IdentityDbContext<User>
{
    public ApplicationDbContext()
        : base("MyDataContext", throwIfV1Schema: false)
    {
    }
    ...

La question: Si les Add-Migration n'est pas à voir un changement dans le modèle, pourquoi j'ai cette erreur quand je le lance? Pourquoi n'est-ce pas le code graine d'être touché? Comment puis-je résoudre ce problème, ou si cela ne peut pas être déterminé, comment puis-je déterminer la cause racine?

InformationsquelleAutor Steve Wash | 2015-02-02