首页/技术分享

二次开发教程:entity framework 迁移

发布于:2019-07-24 16:28:21
3091人 分享

1.打开 “程序包管理器控制台”


2.设置 “程序包管理器控制台” 的默认项目为当前项目


3.输入Enable-Migrations  再回车;项目中会增加一个Migrations文件夹里


假设我们现在要在


    [Table("persons")]

    public class Person

    {

        [Column("person_id")]

        public int Id { get; set; }

        [Column("person_name")]

        public string Name { get; set; }

    }


增加一个字段        


[Column("person_age")]

public int Age { get; set; }


我们须在 “程序包管理器控制台” 中输入Add-Migration AddAge,回车,然后在Migrations文件夹里会增加一个类


    public partial class AddAge : DbMigration

    {

        public override void Up()

        {

            AddColumn("dbo.persons", "person_age", c => c.Int(nullable: false));

        }        

        public override void Down()

        {

            DropColumn("dbo.persons", "person_age");

        }

    }


然后在“程序包管理器控制台” 输入 Update-Database ,回车。


数据库里就会增加person_age字段,源程序运行也不会报错了


 


Get-Migrations 可以查看历史迁移


Update-Database -TargetMigration:"InitialCreate"; 可以退回到目标迁移状态


回退的时候会运行DbMigration 的Down方法,以上的例子回滚到InitialCreate时会运行AddAge的Down方法,


会删除person_age列,如果把AddAge改成:


    public partial class AddAge : DbMigration

    {

        public override void Up()

        {

            AddColumn("dbo.persons", "person_age", c => c.Int(nullable: false));

        }        

        public override void Down()

        {

            RenameColumn("dbo.persons", "person_age","age");

        }

    }


回头时就会把person_age 重名命为age

转载请注明来源本文地址:https://www.tuituisoft/blog/3167.html

上一篇:

二次开发教程:ef 查询相关数据

下一篇:

二次开发教程:entity framework 自定义映射