EF Code First 4.3.1迁移:即使没有任何改变,也始终播种数据

时间:2012-08-03 21:13:54

标签: asp.net-mvc entity-framework-4 ef-code-first ef-migrations

我在ASP.NET MVC 4项目中使用新的迁移,在迁移/配置文件中我有以下内容:

public Configuration()
        {
            AutomaticMigrationsEnabled = false;
            AutomaticMigrationDataLossAllowed = false;
        }

在同一个文件文件中,我还有一个填充数据库的Seed方法。我注意到每次运行我的应用程序时,即使模型没有更改,它也会重新设置数据库。在我的global.asax文件中,我在Application_Start中有以下数据库初始化程序

Database.SetInitializer(new MigrateDatabaseToLatestVersion<UtilitiesContext, Migrations.Configuration>());

如果模型更改或运行Update-Database命令,我只希望它为数据库设定种子。我该怎么做呢?

2 个答案:

答案 0 :(得分:0)

DropCreateDatabaseIfModelChanges怎么样?见MSDN article。只有在数据库与模型不同时才会重新设置。

用法:

 Database.SetInitializer(new DropCreateDatabaseIfModelChanges<UtilitiesContext>());

答案 1 :(得分:0)

实际上我只是一起删除了初始化程序语句并且它有效。