2016-07-12 117 views
2

這個令人沮喪的簡單表面問題很難在Google和SO上找到答案。我有一個ASP.NET MVC項目,我正在使用實體框架和代碼優先的方法。我去添加另一個遷移,但是當我運行Add-Migration MigrationName命令時,我拼錯了MigrationName在更新數據庫運行之前刪除代碼優先的遷移

我還沒有運行Update-Database。重命名自動創建的遷移類名稱就足夠了嗎?或者,我是否必須先刪除遷移並添加一個正確名稱的新遷移?如果是這樣,我該怎麼做?只需刪除自動創建的遷移課程,還是有更多?

+2

只是刪除:

如果你已經跑了Update-Database命令,您仍然可以通過滾動這回實現它上課並重新創作,沒有什麼更刺激的需要。你可以重新命名它,但養成自動生成這些東西的習慣是很好的。 – DavidG

+0

非常感謝@DavidG!發佈這個答案,以便我可以將其標記爲已接受。 –

+0

@DavidG不會只是刪除不會導致在另一個嘗試遷移中找到更改的類?由於遷移的變化已經成爲快照的一部分?或者,這種變化取決於您使用的EF版本? – Kritner

回答

2

儘管您可能可以重命名它們,但我認爲您可能會針對創建的*.resx文件提出一些問題,因爲它包含壓縮的EDMX文件以及一些命名內容。最簡單的方法是刪除根遷移類(它也將刪除migration.Designer.csmigration.resx文件)並重新創建它。

Update-Database -TargetMigration NameOfPreviousMigration 

(您可能需要添加-Force如果回滾會破壞數據)

相關問題