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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实现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 命令。

 

以上是关于实现CodeFirst自动数据迁移无需命令的主要内容,如果未能解决你的问题,请参考以下文章

记录一次EFCore CodeFirst迁移实践,解决多个项目表结构同步更新问题

EF CodeFirst 数据库创建与迁移

EF CodeFirst 命令步骤

EF CodeFirst简介默认约定数据库初始化策略

EF数据迁移

EF-使用迁移技术让程序自动更新数据库表结构