完善主体资料,免费赠送VIP会员!
* 主体类型
* 企业名称
* 信用代码
* 所在行业
* 企业规模
* 所在职位
* 姓名
* 所在行业
* 学历
* 工作性质
请先选择行业
您还可以选择以下福利:
行业福利,领完即止!

下载app免费领取会员

NULL

5cdd2dc095060.jpg

二次开发教程:entity framework 迁移

发布于:2019-07-24 16:28:21

网友投稿

更多

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

本文版权归腿腿教学网及原创作者所有,未经授权,谢绝转载。

未标题-1.jpg

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

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

60acb4e0ef112.png