实现CodeFirst自动数据迁移无需手动执行命令

本主题假设您掌握了实体框架中 Code First 迁移的基本知识。

借助自动迁移功能,您无需对您所做的每一个更改都在程序包管理器控制台中手动Update-Database 。

 

启用迁移

只需执行一次开启迁移命令,在程序包管理器控制台中运行 Enable-Migrations(如已启用迁移则无需再次执行)。

AutomaticMigrationsEnabled = true; 
AutomaticMigrationDataLossAllowed = true;

 

实现自动迁移

Global.asax

namespace AutoMigrate
{
    public class MvcApplication : System.Web.HttpApplication
    {
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);

            //自动迁移
            Database.SetInitializer<Model1>(new MigrateDatabaseToLatestVersion<Model1, AutoMigrate.Migrations.Configuration>());
            var dbMigrator = new DbMigrator(new AutoMigrate.Migrations.Configuration());
            dbMigrator.Update();
        }
    }
}

至此之后您的项目添加实体对象属性后 而无需运行Update-Database 命令。

 

posted @ 2016-03-07 12:40  apteryx  阅读(2418)  评论(0编辑  收藏  举报