0

我試圖創建一個特定於DbContext的可能域有一個模型類完全由EF管理,另一個被映射到數據庫視圖。爲了確保EF不會嘗試建立這種觀點已經存在,我剛加的觀點,以我的DbContext和運行以下命令:實體框架6更新數據庫無法使用-IgnoreChanges創建的遷移

Add-Migration InitialUnmanaged -IngoreChanges 

這將創建一個空的向上和向下遷移,而這正是我想要的是。我可以使用此遷移更新我的開發數據庫,​​但每當我嘗試添加包含EF管理的模型類的第二次遷移時,都會出現錯誤。

Add-Migration Initial 

無法因爲以下明確遷移未決以產生一個明確的遷移:[201510151553565_InitialUnmanaged]。在嘗試生成新的顯式遷移之前應用待處理的顯式遷移。

事情是,我已經應用了明確的遷移,我可以在我的MigrationHistory表中看到它。

MigrationId

201510151553565_InitialUnmanaged

誰能幫助我瞭解爲什麼發生這種情況,以及如何解決它?

+0

嘗試從表中刪除遷移並再次運行第一次遷移 –

+0

您是否運行過更新數據庫?這將改變數據庫方面的模型。 –

+0

發生了一件非常奇怪的事情。當我重置所有內容並使我的初始遷移包括所有內容時,我可以很好地更新數據庫,但是當我嘗試將其返回時,它會失敗。 Update-Database -target:0給出了一個錯誤,說目標數據庫已經在版本0了。 –

回答

0

要麼刪除遷移,要麼只是運行Update-Database以使實體重新同步。如果它是一個空遷移,你的數據庫不會改變。

0

我想通了。

當我應用遷移時,它將遷移歷史記錄表與模型相同的默認模式。但是,當我嘗試將其回滾時,它正在連接用戶的模式中查找遷移歷史記錄。因爲它不在那裏,所以它認爲數據庫版本爲0.

我創建了一個OracleDbConfiguration類來指定一個自定義HistoryContext,它指定了遷移歷史表的默認模式,並且能夠按照預期方式回滾應用遷移。

我驗證了我能夠重新創建我的初始步驟,並使它們按預期工作,現在我明確指定了遷移歷史記錄表的模式。

相關問題