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”,所以没有生成该文件)如下图:
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 }