1

在模型上下文文件中提到了

如果您希望 Entity Framework 在您更改模型架构时自动删除并重新生成数据库,请将以下代码添加到 Global.asax 文件中的 Application_Start 方法。注意:这将在每次模型更改时破坏并重新创建您的数据库。

System.Data.Entity.Database.SetInitializer(new System.Data.Entity.DropCreateDatabaseIfModelChanges<HMS.Models.HMSContext>());

所以我在Global.asax文件里面添加了这段代码protected void Application_Start()

当我对模型类进行任何更改时,添加此行会删除整个数据库。有没有其他方法可以避免这种情况,我仍然可以进行模型更改?

即在我重建并运行我的应用程序时执行模型更改后,它会删除我的数据库并重新生成所有空模型表。所以我丢失了所有输入的数据,我想保留表格数据。

4

1 回答 1

0

If you're using EF Code First 4.1, then, no, it will only drop and recreate. EF version 5 apparently supports dynamically changing the underlying database. It's in beta at the moment, but is available for production use if you want to try it out. You can install it through NuGet.

于 2012-07-11T09:03:35.133 回答