ef core mysql 生成迁移失败_EF Core 数据库迁移(Migration)

标签:

工具与环境介绍

1.开发环境为vs 2015

场景

设计两张表 用户表(user)和发帖表(user)

一个用户对应多个用户

Coding Begin

1.新建项目(新建一个空console项目)

ef core mysql 生成迁移失败_EF Core 数据库迁移(Migration)_第1张图片

2.添加Nuget.config

增加两个feed,一个是Pomelo(mysql ef core的支持),一个是nuget

代码如下:

ef core mysql 生成迁移失败_EF Core 数据库迁移(Migration)_第2张图片

3.在project.json中增加ef core的依赖,同时增加EF Tool(用于数据库的迁移)

{"version": "1.0.0-*","buildOptions": {"emitEntryPoint": true},"dependencies": {"Microsoft.NETCore.App": {"type": "platform","version": "1.0.0"},"Pomelo.EntityFrameworkCore.MySql": "1.0.0","Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final"},"tools": {"Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final"},"frameworks": {"netcoreapp1.0": {"imports": "dnxcore50"}

}

}

4.增加User,Post实体 和DB数据库上下文文件

代码分别如下:

public classUser

{public int Id { set; get; }public string UserName { set; get; }public string Password { set; get; }

}public classPost

{public int Id { set; get; }public string Title { set; get; }public string Description { set; get; }public DateTime CreatedDate { set; get; }public int UserId { set; get; }

}public classDB : DbContext

{public DbSet Users { set; get; }public DbSet Posts { set; get; }protected override voidOnModelCreating(ModelBuilder modelBuilder)

{base.OnModelCreating(modelBuilder);

}protected override voidOnConfiguring(DbContextOptionsBuilder optionsBuilder)=>optionsBuilder

.UseMySql(@"Server=localhost;database=migrationtest;uid=root;pwd=Password12!;");

}

5.通过Migration生成数据库

在vs中的“程序包管理器控制台”中输入如下两个命令

Add-Migration init(执行此命令项目生成一个目录(Migration))

Update-Database init

执行之前

ef core mysql 生成迁移失败_EF Core 数据库迁移(Migration)_第3张图片

执行Add-Migration init(生成Migration文件夹)

ef core mysql 生成迁移失败_EF Core 数据库迁移(Migration)_第4张图片

执行 Update-Database init

ef core mysql 生成迁移失败_EF Core 数据库迁移(Migration)_第5张图片

执行命令之后,数据库生成

ef core mysql 生成迁移失败_EF Core 数据库迁移(Migration)_第6张图片

Post表

ef core mysql 生成迁移失败_EF Core 数据库迁移(Migration)_第7张图片

6.往数据库插入数据

ef core mysql 生成迁移失败_EF Core 数据库迁移(Migration)_第8张图片

ef core mysql 生成迁移失败_EF Core 数据库迁移(Migration)_第9张图片

7.修改实体字段,在post实体中增加一个字段和修改一个字段的名字

修改之后的post如下

public classPost

{public int Id { set; get; }public string Title { set; get; }public string Hint { set; get; }public DateTime CreatedDate { set; get; }public int UserId { set; get; }public string Remark { set; get; }

}

8.执行迁移的命令

Add-Migration updatedb

Update-Database updatedb

ef core mysql 生成迁移失败_EF Core 数据库迁移(Migration)_第10张图片

执行迁移之后的post表

ef core mysql 生成迁移失败_EF Core 数据库迁移(Migration)_第11张图片

标签:

你可能感兴趣的:(ef,core,mysql,生成迁移失败)