现在,我使用EF6的Alpha,并使用迁移时,它会添加一个新的迁移日志到__MigrationHistory表。实体框架6码第一次迁徙的ContextKey
在EF6,该__MigrationHistory表中有一个名为 “ContextKey” 新列。经过测试,我发现有两个默认的“ContextKey”值:
当我运行代码的DbContext的派生class.This全称发生:
Database.CreateIfNotExists();
DbMigrationsConfiguration的全名派生类。这发生在我运行的代码:
public ArticleDbContext() { Database.SetInitializer(new MigrateDatabaseToLatestVersion<ArticleDbContext, ArticleConfiguration>()); }
我第一次运行应用程序, “Database.CreateIfNotExists();”创建一个新的数据库对我来说,映射到ArticleDbContext定义的模型,然后添加一个__MigrationHistory行已ContextKey的值为“Module.Article.Model.ArticleDbContext”也是所有表。
然后“Database.SetInitializer(new MigrateDatabaseToLatestVersion());”将运行,此代码将生成一个新的ContextKey“PowerEasy.Module.Article.Migrations.ArticleConfiguration”。迁移使用此ContextKey查询__MigrationHistory表并找出没有数据。同样,它将创建映射到ArticleDbContext中定义的模型的所有表,但表已存在于数据库中,因此会抛出异常,并告诉我“表XXX已存在”。
我怎样才能解决这个问题?
非常感谢你,我已经解决了它。 – RongieZeng