2011-03-21 119 views

回答

1

EF沒有任何內置的用於生成diff腳本的內容[尚未]。 EF可以刪除並重新創建數據庫,但這在現實世界中並不真正可用......他們似乎有數據庫遷移計劃,但我不知道何時/如果可用(http://blogs.msdn.com/b/efdesign/archive/2010/10/22/code-first-database-evolution-aka-migrations.aspx)。

如果您想進行增量更改(添加/刪除表,列,約束,索引等),您將不得不編寫SQL腳本,這些腳本應用從版本1數據庫到版本2數據庫所需的更改。將數據庫的「版本號」存儲在數據庫的某個位置可能是一個好主意,以便在您有大量不同版本的「野性」時更容易地應用正確的腳本。

另外還有一些第三方工具可以基於EDMX/db差異生成增量差異腳本(「alter table ...」等)。我的'Model Comparer'用於EF4:http://huagati.blogspot.com/2010/07/introducing-model-comparer-for-entity.html

0

我們正在使用的一種替代方法是保留兩個實體框架模型,一個是舊的,另一個是新的。藉助反思,您可以創建最適合的遷移算法。

舊的EF模型可以被序列化爲XML或任何這樣的格式。然後,您可以刪除並重新創建數據庫,並從XML中反序列化您的EF模型,並將它們放回到新數據庫中。然而,插入身份似乎沒有什麼問題,但可以進行管理。

但是,這種解決方案只適用於較大數據庫的小型數據庫,您將需要更先進的解決方案。

相關問題