2014-10-08 46 views
1

當我運行我的應用程序時,它說自從創建數據庫以來,支持我的上下文的模型已更改。手動更新數據庫,支持上下文的EF complians模型已更改

我添加一個字段,我的模型,如:

public int? LocationId {get;set;} 

我添加了一個int列的數據庫,它可爲空。

我知道數據庫有_migrationsHistory表,現在不同步。

我到目前爲止在QA中所做的一切就是放棄所有表格,然後運行只爲我自動重新創建數據庫的應用程序。

現在我想保留表中的數據,我該如何解決這個問題?

我添加了列,所以它應該工作,但是如果它在啓動期間執行驗證失敗。

我有什麼選擇?

回答

1

這聽起來像你想使用Code-First Migrations(EF 4.3及更高版本)

這將允許您根據通過包管理器控制檯更改模型來生成遷移文件。

您可以使用add-migration <name>生成遷移文件,如果需要更改它並使用update-database手動更新。

如果您無意中破壞某些東西,還可以回退到任何遷移點。

+0

謝謝我這樣做,但在生產中我無法從筆記本電腦連接到數據庫,所以它會在應用程序啓動過程中運行遷移? – 2014-10-09 14:00:27

+0

不默認,但我認爲這會幫助你http://stackoverflow.com/questions/10848746/using-entity-framework-code-first-migrations-in-production – 2014-10-09 15:35:27

相關問題