2015-01-10 96 views
1

我使用Code First Migrations,自動模式。我爲一次需要直接SQL代碼的遷移創建了Migrations文件夾,但AutomaticMigrationsEnabled = true;如何清除Code First遷移中的歷史記錄?

public Configuration() 
    { 
     AutomaticMigrationsEnabled = true; 
     AutomaticMigrationDataLossAllowed = true; 
    } 

很多次,我刪除數據庫以重新創建它。看到調試器中的自動更新SQL代碼,我意識到遷移系統有我的更改歷史,事件我刪除源中的任何跟蹤。

例如,我將MyTable1表名更改爲MyTable2。然後我完全刪除數據庫。當我執行「Update-Database -Script」時,我可以看到Migrations仍然創建「MyTable1」,然後重命名爲「MyTable2」。

我完全困惑。 「MyTable1」在我的代碼中不存在。它不在Migrations文件夾中,因爲我使用自動遷移。它不在我的數據庫的歷史記錄表中,因爲我刪除了它。我刪除了bin和obj文件夾。那麼,在哪裏存儲我的更改歷史記錄?

+0

make manual add-migration info,並清除Up和Down方法並運行update-database – Monah

回答

0

神祕解決了。我的遷移文件綁定了一個RESX文件。

該文件似乎將數據庫的以前的狀態存儲在「data」元素中。它被編碼,因此,我無法在我的文件中找到MyTable1文本。

<data name="Target" xml:space="preserve"> 
<value>H4sIAAAAAAAEAO1dW28cu5F+X2D/w0BPSXCikez12cSQE+jI0okSyxYs+WSRF6M1Q0kN93RPunt8LCz2l+3D/qT9C8u+81LFW7Mv4xUOcGANySJZLBaLxaqv//e//+fkz9820eIrSbMwid8cHB8eHSxIvErWYfzw5mCX3//+Dwd//tO//svJ+XrzbfFLU+9lUY+2jLM3B495vn29XGarR7IJssNNuEqTLLnPD1fJZhmsk+WLo6M/Lo+Pl4SSOKC0FouTj7s4