• EF数据迁移


    在项目中使用Entity Framework的Code First模式,进行数据迁移时,Migration文件夹中存放的是每一次Entity的修改如何同步到数据的操作方法,每个文件中都只有Up和Down这两个方法。例如第一次数据迁移时,会创建数据表,在程序包管理控制台中输入命令:add-migration migrationname,会生成一个migrationname.cs的文件,在对应的Migration类文件的代码如下:

    public partial class Initial : Migration
        {
            protected override void Up(MigrationBuilder migrationBuilder)
            {
                migrationBuilder.CreateTable(
                    name: "Posts",
                    columns: table => new
                    {
                        Id = table.Column<int>(nullable: false)
                            .Annotation("Sqlite:Autoincrement", true),
                        Title = table.Column<string>(nullable: true),
                        Author = table.Column<string>(nullable: true),
                        Body = table.Column<string>(nullable: true),
                        LastModified = table.Column<DateTime>(nullable: false)
                    },
                    constraints: table =>
                    {
                        table.PrimaryKey("PK_Posts", x => x.Id);
                    });
            }
    
            protected override void Down(MigrationBuilder migrationBuilder)
            {
                migrationBuilder.DropTable(
                    name: "Posts");
            }
        }

    再在程序包管理控制台中输入命令:update-database,即可将Entity的设计同步到数据库中。

    当后期对Entity进行了修改时,再次运行 add-migration migrationname 和update-database这两个命令,即可再生成一个同步文件,并将修改更新到数据库中。

    注意两个问题:

      1、不能随意删除Migration文件夹内的同步文件,否则数据同步会失败,问题解决很麻烦。

      2、每次add-Migration时取的文件名不能重名

    备注:seed方法

    Seed() 方法是什么呢? 依照它原来的注解 "This method will be called after migrating to the latest version", 字面上是说这个 Seed() 方法会在我们 migrate 到最近的版本时会被呼叫; 实际上就是说, 如果我们已经设定好 Migration , 当我们执行了 Update-Database 指令时, EF 就会自动去呼叫并执行这个 Seed() 方法。

      

  • 相关阅读:
    【CTF MISC】文件内容反转方法-2017世安杯CTF writeup详解
    邮件伪造测试-Swaks
    脚本病毒分析扫描专题1-VBA代码阅读扫盲、宏病毒分析
    XXX变种-防火墙放行自身
    Memcached服务器UDP反射放大攻击
    邮件服务器安全问题
    Windows执行命令与下载文件总结
    Office DDE漏洞学习笔记
    MFC将二进制文件导入资源后释放
    直接读取修改exe文件
  • 原文地址:https://www.cnblogs.com/chenh/p/10295794.html
Copyright © 2020-2023  润新知