2016-02-11 24 views
0

使用實體框架6,與SQL Server數據庫和代碼第一次遷移,我有遷移建立和「愉快地」運行,但我發現每次我去添加另一個遷移我第一得到以下錯誤關:實體框架總是有待決的遷移

無法生成一個明確的遷移,因爲下面的明確的遷移未決:[201602090629398_Initial,201602090638322_FixSitePageColumns,201602110313468_RemoveRequiredTemplateId]。再然後試圖產生一個新的明確的遷移之前應用掛起明確的遷移。」

如果我運行update-database -force它抱怨(自然),該腳本將失敗,因爲已經有被應用的。這doign一個奇怪的組合在add-migration作品,我可以進行更新到最新的遷移。

的「待定」遷移名單也隨之增加隨着時間的推移每addded遷移。

可能會導致什麼這種「掛起」狀態,遷移時已經應用了?我可以確認數據庫已經有b了een更新,遷移存在於__MigrationHistory,並且程序運行愉快。

編輯

我也只是運行get-migrations並正在返回以下:

PM>得到的遷移已應用到目標數據庫 檢索遷移。 201602110313468_RemoveRequiredTemplateId 201602110311536_RemoveRequiredTemplateId 201602090638322_FixSitePageColumns 201602090629398_Initial

這裏怪異的事情(可能是紅鯡魚)是201602110311536_RemoveRequiredTemplateId是不是在我的項目遷移,我認爲這可能是一個,我創建,然後刪除,我從未隱式將其應用於數據庫,但它位於__MigrationHistory表中。

+0

重命名現有的數據庫並使用相同的名稱創建一個空的數據庫。然後,調用'update-database'。它應該運行所有的遷移。現在,添加並應用新的遷移並告訴我問題是否仍然存在 –

+0

嗯,我上次執行「強制」更新和添加遷移的方式使其發揮作用,似乎已將其修正爲新變更做了添加遷移(並準備嘗試你的建議),問題沒有發生。如果它再次發生,我會嘗試你建議的,謝謝。 –

回答

-1

從migrations數據庫表中刪除removerequiredtemplateid條目並重新運行您的遷移過程。

(可選)完全刪除表,刪除所有的遷移,重新運行啓用遷移,創建新的初始遷移並再次運行update-database(基本上,創建一個新的啓動)。

請記住事先做好所需的備份。

+0

Downvoter:爲什麼downvote?請提供替代解決方案,或者至少考慮發佈您的降級原因... –