EF--code first数据迁移命令

心已入冬 提交于 2020-02-23 21:49:41

原文推荐!点我点我!

添加Migrations文件夹,并生成类文件Configuration.cs

PM> Enable-Migrations -EnableAutomaticMigrations   

在Migrations文件夹中新增类文件201309201556388_InitialCreate.cs

Add-Migration InitialCreate   //后面的名字是随便写的

执行结果生成与上面一致的数据库

Update-Database -Verbose   

数据库模型中添加City类,执行程序包管理器控制台语句,Migrations文件夹中新增类文件201309201643300_AddCity.cs

Add-Migration AddCity       //后面的名字是随便写的

执行程序包管理器控制台语句,进行数据库版本回溯

Update-Database –TargetMigration:"201309201643300_AddCity"   

生成数据库版本之间的Sql脚本

Update-Database -Script -SourceMigration:"201309201643300_AddCity" -TargetMigration:"201309201708043_ModifyCity"     

执行Sql脚本

Update-Database -Script 

Enable-Migrations指定项目名称

Enable-Migrations -StartUpProjectName Portal   

MigrateDatabaseToLatestVersion:将Entity的修改同步到数据库
下面的代码的原文地址

   public class StyleContext:DbContext
    {
        public StyleContext() : base("name=WMSAidDB") 
        {
            //自动创建表,如果Entity有改到就更新到表结构
            Database.SetInitializer<StyleContext>(new MigrateDatabaseToLatestVersion<StyleContext, ReportingDbMigrationsConfiguration>());
        }

        public DbSet<StyleDetail> StyleDetails { get; set; }

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
                
        }

    }

    internal sealed class ReportingDbMigrationsConfiguration : DbMigrationsConfiguration<StyleContext>
    {
        public ReportingDbMigrationsConfiguration()
        {
            AutomaticMigrationsEnabled = true;//任何Model Class的修改將會直接更新DB
            AutomaticMigrationDataLossAllowed = true;
        }
    }
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!