3 回答

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

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