我正在創建一個新的代碼優先 Web 應用程式,但使用來自另一個應用程式的代碼作為起點。但我更愿意從新專案中洗掉所有不需要的遷移。
目前,我的遷移如下所示:

我很確定我需要保留ApplicationDbContextModelSnapshot.cs和ApplicationDbContext.cs。
所以我的問題是:我可以安全地洗掉所有其他遷移檔案嗎?
注意:我不想在新應用程式中恢復遷移,所以這不是問題。
uj5u.com熱心網友回復:
總結一下您的問題,您希望有一個干凈的狀態,而不是隨著時間的推移累積的所有遷移污染您的遷移檔案夾。在開始一個新專案并在對我的最終模式感到滿意之前進行大量迭代時,我經常需要自己做這件事。
好訊息是物體框架開箱即用地支持這一點,只有一個警告:如果您曾經手動滾動自己的遷移(通過呼叫Add-Migration然后編輯生成的遷移檔案),可能出于性能原因添加自定義索引,您必須確保在此程序中恢復這些內容。
您所要做的就是洗掉整個遷移檔案夾(包括快照)并重新開始,就好像您從頭開始創建專案一樣。通常,當您創建第一個遷移時,您已經定義了一些物體(畢竟這就是您想要創建遷移的原因);您只是將其提升到一個新的水平,并希望您的整個資料庫都在該遷移中。
一旦你洗掉了遷移檔案夾,EF 就不再認為你的專案有遷移——就像我說的,你是從頭開始的。因此,您所要做的就是呼叫Add-Migration [MigrationName](ie Add-Migration InitialMigration),它將為遷移提供創建整個資料庫所需的一切。
注意:在我的評論中,我建議您需要先呼叫Enable-Migrations,但這顯然不再需要,因此您可以直接進入呼叫Add-Migration。
uj5u.com熱心網友回復:
為什么不直接洗掉它們并添加一個空遷移來檢查?如果它壞了,那么你有你的答案。然后從版本控制中恢復。
但柯克沃爾所說的是正確的。保留您的 ApplicationDbContext 并添加初始遷移。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/471018.html
