2016-11-28 22 views
0

我正在使用MVC中的實體框架以模型優先方法開發項目。幾天後,我需要添加一些屬性到我現有的模型。後來,當我試圖構建解決方案它給了我下面的錯誤:如何在EF MVC中刪除並重新創建數據庫後維護現有數據

Model has changed.

所以,我GOOGLE了它找到了一個解決方案:

Database.SetInitializer<ClubmansGuideDB>(new DropCreateDatabaseIfModelChanges<ClubmansGuideDB>()); 

它工作正常,但如何實體框架保持現有數據特定的模型關聯表?有人可以解釋嗎?

+0

你將失去​​所有的數據,你需要使用[遷移](https://msdn.microsoft .com/en-us/library/jj591621(v = vs.113).aspx)的方法。 – 3615

+0

刪除並重新創建數據庫後,我能夠獲得現有的數據甚至可以請你給我一個很好的解釋 – Surya

+0

如果你設置了一些種子,可能會發生這種情況。所以靜態數據將再次被引入,但是如果您將添加1條新記錄,則不應該保留。 – 3615

回答

0

您不應該使用此初始化,而是使用數據庫遷移,該遷移將生成一個腳本,以僅使用添加到模型中的少數屬性來更改數據庫。

你可以這樣做:

1-打開NuGet包管理器控制檯從工具菜單 - >怒江獲取軟件包管理器 2-運行Enable-Migrations命令 3-運行Add-Migration Initial命令,這將代碼添加遷移到如果這是你第一次創建整個數據庫。如果您已經進行遷移,然後運行add-migration -Name somename 5-運行命令update-database -script這將生成一個數據庫腳本來更改數據庫。

使用步驟#5腳本並運行它針對數據庫,它只會做必要的修改

+0

我知道遷移過程,但我想知道在刪除並重新創建數據庫後數據是如何維護的。 – Surya

+0

遷移不會丟失並創建數據庫,它將生成一個腳本來改變數據庫,例如:添加列,刪除列... 只有您正在使用的數據庫初始值設定項會刪除並創建數據庫 –

+0

但我能使用上面的語句獲取數據和更新數據。我的問題是,如果我刪除並重新創建數據庫,Entity Framework如何維護數據。 – Surya

相關問題