实体框架4.3在应用程序启动时运行迁移

Sly*_*Sly 34 .net migration entity-framework ef-migrations entity-framework-4.3

使用EF 4.3在应用程序启动时执行所有必需的数据库迁移的最佳方法是什么?

Lad*_*nka 54

最好的方法应该是使用新的MigrateDatabaseToLatestVersion初始化程序.

Database.SetInitializer<YourContext>(
    new MigrateDatabaseToLatestVersion<YourContext, YourMigrationsConfig>());
Database.Initialize(false);
Run Code Online (Sandbox Code Playgroud)

  • 这个代码打算放在哪里?在App_Start中无法使用Database.Initialize,因为它不能在静态上下文中使用. (4认同)
  • @demoncodemonkey:它将立即执行数据库初始化.如果您不使用它,当您的应用程序第一次尝试访问数据库时,将进行初始化. (4认同)
  • Initialize()不是EF 6.1中的静态方法. (2认同)

Bor*_*ich 6

可以在ADO.NET团队博客上的EF 4.3配置文件设置中找到有关EF 4.3配置选项的详细说明.最后一节描述了数据库初始化程序,包括新的Code First MigrateDatabaseToLatestVersion初始化程序.

虽然实体框架与.NET 4.x的许多其他功能相似,但优于配置,但这是一种情况,MigrateDatabaseToLatestVersion通过应用程序的配置文件设置数据库初始化程序而不是将其显式编码到应用程序中可能非常有用.