1. 为了演示方便,首先新建一个控制台项目,然后添加对entityframework的引用

使用nuget控制台执行: Install-Package EntityFramework

2.新建一个实体“Student”,数据访问类“StudentsContext”,代码如下:

public class Student
    {
        public int Id { get; set; }
        public string Name { get; set; }
    }
public class StudentsContext:DbContext
    {
        public DbSet<Student> Students { get; set; }

    }

3.启用数据迁移。

3.1 打开nuget控制台,执行如下命令:

Enable-Migrations

执行此命令之后,项目中会自动添加一个文件夹“Migrations”,并且会自动生成一个数据迁移配置文件“Configuration.cs”。如果此时之前已经访问过“StudentsContext”,还会在此文件夹下生成一个初始化的迁移文件“xxxxx_InitialCreate.cs”,xxxx是执行命令时的日期序号。(当然我这里还没有访问过“StudentsContext”,所以没有生成该文件)如下图:

Entity Framework Code First Migrations--EF 的数据迁移

3.2 添加数据迁移。

打开nuget控制台,执行如下命令(如果在此之前,数据库已经生成并使用过了,那么此命令会在启用迁移的时候默认执行过了,所以不必再执行。见3.1文字信息):

Add-Migration InitialCreate

执行此命令后,会在“Migrations”文件夹下生成一个初始化的迁移文件“xxxxx_InitialCreate.cs”。每个迁移文件都包含Up和Down两个重写函数,分别对应于更新和回退。上面的代码也很直白,Up函数中创建一个Students表并定义了表结构Down函数用来回退操作,里面简单的删除了Students表。如下:

 1 using System.Data.Entity.Migrations;
 2     
 3     public partial class InitialCreate : DbMigration
 4     {
 5         public override void Up()
 6         {
 7             CreateTable(
 8                 "dbo.Students",
 9                 c => new
10                     {
11                         Id = c.Int(nullable: false, identity: true),
12                         Name = c.String(),
13                     })
14                 .PrimaryKey(t => t.Id);
15             
16         }
17         
18         public override void Down()
19         {
20             DropTable("dbo.Students");
21         }
22     }
View Code

相关文章: