zoukankan      html  css  js  c++  java
  • code first迁移和部署

    从“工具”菜单中,选择“NuGet 包管理器” > “包管理器控制台”。
    在PM>提示符处输入以下命令:

      enable-migrations    add-migration InitialCreate
    

    执行第一次迁移

    当您执行add-migration命令时,迁移生成的代码,将从头开始创建数据库。 此代码也是在迁移文件夹中,在名为的文件<时间戳>_InitialCreate.cs。 Up方法InitialCreate类创建与数据模型实体集相对应的数据库表和Down方法中删除它们。

      public partial class InitialCreate : DbMigration
        {
        public override void Up()
         {
        CreateTable(
            "dbo.Course",
            c => new
                {
                    CourseID = c.Int(nullable: false),
                    Title = c.String(),
                    Credits = c.Int(nullable: false),
                })
            .PrimaryKey(t => t.CourseID);
        
        CreateTable(
            "dbo.Enrollment",
            c => new
                {
                    EnrollmentID = c.Int(nullable: false, identity: true),
                    CourseID = c.Int(nullable: false),
                    StudentID = c.Int(nullable: false),
                    Grade = c.Int(),
                })
            .PrimaryKey(t => t.EnrollmentID)
            .ForeignKey("dbo.Course", t => t.CourseID, cascadeDelete: true)
            .ForeignKey("dbo.Student", t => t.StudentID, cascadeDelete: true)
            .Index(t => t.CourseID)
            .Index(t => t.StudentID);        
        CreateTable(
            "dbo.Student",
            c => new
                {
                    ID = c.Int(nullable: false, identity: true),
                    LastName = c.String(),
                    FirstMidName = c.String(),
                    EnrollmentDate = c.DateTime(nullable: false),
                })
            .PrimaryKey(t => t.ID);        
       }    
        public override void Down()
          {
         DropForeignKey("dbo.Enrollment", "StudentID", "dbo.Student");
        DropForeignKey("dbo.Enrollment", "CourseID", "dbo.Course");
        DropIndex("dbo.Enrollment", new[] { "StudentID" });
        DropIndex("dbo.Enrollment", new[] { "CourseID" });
        DropTable("dbo.Student");
        DropTable("dbo.Enrollment");
        DropTable("dbo.Course");
          }
     }
    

    迁移调用 Up 方法为迁移实现数据模型更改。 输入用于回退更新的命令时,迁移调用 Down 方法。
    这是你输入时创建的初始迁移add-migration InitialCreate命令。 参数 (InitialCreate在示例中) 用于文件命名,可以是任何所需内容; 通常选择的单词或短语汇总了迁移做什么。 例如,你可能会命名为更高版本迁移"AddDepartmentTable"。
    如果创建初始迁移时已存在数据库,则会生成数据库创建代码,但此代码不必运行,因为数据库已与数据库模型相匹配。 将应用部署到其中尚不存在数据库的其他环境时,此代码将运行以创建数据库,因此最好提前进行测试。 这就是为什么更改连接字符串前面部分中的数据库的名称—以便迁移可以创建一个从零开始的新。
    在中程序包管理器控制台窗口中,输入以下命令:
    update-database
    update-database命令将运行Up方法来创建数据库,然后将它运行Seed方法来填充该数据库。 相同的过程将自动运行在生产环境中部署应用程序之后, 您将看到以下部分中。
    使用服务器资源管理器一样在第一个教程中,检查数据库并运行应用程序以验证一切仍然正常相同像以前一样。

  • 相关阅读:
    闭包
    作用域
    既然踏足前端,便要立志成为专家
    D3引擎用正则运算的方式,实现智能设备APP消息推送
    基于ArduinoUNOR3的智能调速风扇
    【一起来玩RTOS系列】之RT-Thread Nano快速创建工程
    MCU代码自动生成工具,全面升级
    ESP8266 SOC门磁系统(一)---短信报警功能
    正点原子F407/103,接入机智云,点亮LED
    机智云5.0推出IoT套件GoKit4.0 可实现物联网应用协同开发
  • 原文地址:https://www.cnblogs.com/caozhengze/p/10442152.html
Copyright © 2011-2022 走看看