2012-05-24 139 views
10

我有我的數據庫已經設置,我想添加一個新的字段到模型,一個新的列到表,有沒有一種方法可以做到這一點,而不會丟失我所有的數據? 通常,如果刪除數據庫,它會自動重新創建所有數據,但我不想丟失數據。 我使用SQL Server 2008作爲數據庫。EF 4.1代碼優先 - 添加列

+0

可能重複http://stackoverflow.com/questions/5656604/updating-database-schema-with-entity-framework-code-first –

回答

9

您需要使用EF Migrations將新列添加到數據庫中。您可以閱讀有關EF遷移herehere的更多信息。

+0

有用的文檔,謝謝! +1 – ChaseHardin

2

如果您先使用代碼,那麼我一直會在列表中手動添加列到數據庫。不幸的是,使用Code First自動化增量模型更新沒有簡單的方法。

例如,EF代碼第一次自己的錯誤之一甚至指定手動更新是最佳選擇:

自數據庫創建的模型支持了「您的上下文」語境已經改變。可以手動刪除/更新數據庫,也可以使用IDatabaseInitializer實例調用Database SetInitializer。例如,DropCreateDatabaseIfModelChanges策略會自動刪除並重新創建數據庫,並可以選擇使用新數據對其進行種子處理。