現在,我使用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