我正在ASP.NET MVC 4项目中使用新的迁移,在迁移/配置文件中,我有以下内容:
public Configuration()
{
AutomaticMigrationsEnabled = false;
AutomaticMigrationDataLossAllowed = false;
}
在同一个文件文件中,我还有一个填充数据库的Seed方法。我注意到,每次运行我的应用程序时,即使模型没有改变,它也会重新设置数据库的种子。在我的global.asax文件中,我在Application_Start 中有以下数据库初始化程序
Database.SetInitializer(new MigrateDatabaseToLatestVersion<UtilitiesContext, Migrations.Configuration>());
我只希望它在模型更改或我运行"更新数据库"命令时为数据库种子。我该怎么做呢?
DropCreateDatabaseIfModelChanges怎么样?请参阅MSDN的这篇文章。只有当数据库与模型不同时,才会重新设定种子。
用法:
Database.SetInitializer(new DropCreateDatabaseIfModelChanges<UtilitiesContext>());
实际上,我只是一起删除了初始值设定项语句,它就起了作用。