2012-07-06 10 views
2

我正在開發一個C#應用程序,使用實體框架4和模型優先方法(我有一個模型,可以從中生成我的DB表和類)。定期更改基礎EF模型的最佳選擇

每次變更請求來自客戶時,定期更改數據庫模式(表格定義等)的最佳方式是什麼? (刪除整個數據庫並應用生成的模型SQL顯然不是一種選擇,因爲數據庫中的所有數據都會丟失。)

希望有人能給我一個提示。

+0

是不是實體自己做?用你喜歡的方式更新數據庫模式(我想是SQL ALTER腳本),然後右鍵單擊並從數據庫更新模型?也許我誤解了你的問題,它與實體:通用數據庫更新用例無關? – Kek 2012-07-06 18:53:26

回答

0

數據庫項目。您可以對本地或開發數據庫執行模式比較,然後針對您的生產數據庫生成更改。容易和源可控。

1

對於我們的模型優先數據庫更新,我們將生成的數據庫拍攝到第二個「差異」數據庫中。然後我們使用Open DB diff這樣的工具生成一個更改腳本:http://opendbiff.codeplex.com/或redgate的SQL比較器:http://www.red-gate.com/products/sql-development/sql-compare/

生成的腳本通常會創建一個安全的數據庫導出並保留您的數據。然而,檢查生成的腳本實際上是否是以避免任何數據丟失總是一個好主意。