我有一个简单的ASP.NET网页站点使用Entity Framework 6.1(使用csproj的标准项目中的Web页面,以便我可以使用EF Code First进行迁移)。这是我的_AppStart.cshtml:
@{
Database.SetInitializer(new MigrateDatabaseToLatestVersion<MyContext, Configuration>());
}
这一切都编译得很好,我已经确认代码确实通过了这一行但是没有应用迁移 - 我已经确认通过手动执行Update-Database
来完成正常工作。
可能有什么不对?我需要设置其他东西吗?
答案 0 :(得分:1)
调用SetInitializer(如名称所示)不会创建数据库或应用迁移。它只是设置初始化程序。例如,当您希望使用SaveChanges方法将数据保存到db并且此时数据库不存在时,将调用它。要强制立即迁移,您应该使用DbMigrator类:
var migrator = new DbMigrator(new MyMigrationsConfiguration());
migrator.Update();