0

我正在使用實體框架7進行遷移以改變應用程序的Microsoft Sql Server數據庫的ASP.NET 5應用程序。實體框架7命令澄清 - 遷移添加與數據庫更新?

當我到達遷移步驟時遇到了一些問題,我想澄清實體框架命令migrations adddatabase update的作用。

這是我的理解是

> dnx ef migrations add Initial

會在名稱的文件夾中初始命名遷移包含代碼,將基於應用模型類創建表結尾的C#文件,

> dnx ef database update

執行代碼w將這些更改添加到數據庫中。但是,在執行migrations add命令後,數據庫已創建,並且在運行database update命令時控制檯發出錯誤,表示這些表已存在。

從我讀過的不同教程中,看起來migrations add實際上不應該影響數據庫,並且在運行database update時會發生更改,但看起來並非如此。

有人可以解釋這些步驟中的每一個在做什麼以及它們如何配合在一起?提前致謝!

+0

ef migration add初始化不創建數據庫,只是遷移文件。我懷疑你之前創建了一個數據庫並運行它的更新,然後刪除遷移文件並重新創建它,而不刪除數據庫之前 – Tseng

+0

我在現有數據庫上創建模型時遇到這些問題。我只是手動將遷移的名稱添加到__efhistory表。雖然EF7首先關注代碼,但實際情況是許多開發過程都是數據庫優先。 – Tamayi

回答

1

dnx ef migrations add不應創建數據庫。我懷疑DbContext.Database.EnsureCreated()正在您的應用程序代碼中的某個地方被調用,從而產生這種效果。

+0

我在'DbContext'類中有這條線。我已經刪除它,命令按照他們應該的方式工作。謝謝! – jmk22

相關問題