2012-01-06 51 views
1

我正在使用C#MVC3和EF 4.1。 當我修改我的某個模型(IE:我將屬性public bool dead {set; get;}添加到我的Player.cs)的atributte時,EF會刪除並重新創建整個數據庫。EntityFramework修改數據庫而不是重新創建

我知道這happend因爲我有這樣的:

的Global.asax.cs

protected void Application_Start(){ 
    ... 
    Database.SetInitializer<GameContext>(new DropCreateDatabaseIfModelChanges<GameContext>()); 
    ... 
} 

我只想EF新列添加到我的播放表,無需重新創建完整的數據庫,我有與Django相同的問題,但我用南來解決(一個驚人的工具)。存在類似於EF的東西?

我無法使用public class GameInitializer : DropCreateDatabaseIfModelChanges<GameContext>定義爲數據庫創建種子,並自行放置所有值,因爲它們是動態的。

我幾乎認爲唯一的選擇是手動添加列到我的表,以及...我有一個問題,當我添加MDF文件到我的服務器資源管理器,項目無法打開數據庫再次(即使當我分離並關閉連接),它有點奇怪。

嗯,那是我的問題! TIA。

+0

http://stackoverflow.com/questions/2198426/database-migrations-for-entity-framework-4 – 2012-01-06 16:22:24

回答

5

EF目前沒有任何增量方式來構建數據庫,但有單獨的項目Code First Migrations將提供此功能。遷移目前處於測試階段,應該是未來EF版本的一部分。

因此,您可以使用遷移,或者您必須手動修改數據庫(嘗試關閉/打開VS以解決當前問題)。

相關問題