3 回答

小怪獸愛吃肉
TA貢獻1852條經驗 獲得超1個贊
你需要 :
刪除狀態:刪除項目中的遷移文件夾; 和
刪除
__MigrationHistory
數據庫中的表(可能在系統表下); 然后在程序包管理器控制臺中運行以下命令:
Enable-Migrations -EnableAutomaticMigrations -Force
使用或不使用
-EnableAutomaticMigrations
最后,你可以運行:
Add-Migration Initial

ibeautiful
TA貢獻1993條經驗 獲得超6個贊
問題:您已經搞砸了遷移,并且想要在不刪除現有表的情況下重置它。
問題:由于EF希望從頭開始創建表,因此無法使用數據庫中的現有表重置遷移。
該怎么辦:
從Migrations_History表中刪除現有遷移。
從“遷移”文件夾中刪除現有遷移。
運行add-migration Reset。這將在您的Migration文件夾中創建一個包含創建表的遷移(但它不會運行它,因此不會出錯。)
您現在需要在MigrationHistory表中創建初始行,以便EF具有當前狀態的快照。如果您應用遷移,EF將執行此操作。但是,由于數據庫中已存在表,因此無法應用剛剛進行的遷移。所以進入遷移并注釋掉“Up”方法中的所有代碼。
現在運行update-database。它將應用遷移(而不是實際更改數據庫)并在MigrationHistory中創建快照行。
您現在已重置遷移,并可能繼續正常遷移。
添加回答
舉報
0/150
提交
取消