2012-01-06 113 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以解决当前问题)。

相关问题