.net Core Mysql/Sqlserver Migration

.net Core Migration 步骤

参考代码地址:https://github.com/BBMMRunLoop/JK.GISService.git

  1. 必须包含Microsoft.EntityFrameworkCore.Tools的项目中
    Cannot execute this command because 'Microsoft.EntityFrameworkCore.Tools' is not installed in project 'MuscleFellow.Data'
  2. 必须要有实体类或者实体类对应的Models子项目,同时必须要有自定义好的DBContext,里面配置实现都完成。比如:

public class DomainModelContext : DbContex {
public DomainModelContext(DbContextOptions options) : base(options) {
}

    public DbSet tabBaseInfo { get; set; }
    public DbSet tabProjectInfo { get; set; }

    protected override void OnModelCreating(ModelBuilder builder)
    {
        builder.Entity().HasKey(m => m.id);
        builder.Entity().HasKey(m => m.id);

        base.OnModelCreating(builder);
    } }  
  1. 启动项目必须引用包含有自定义DbContext类的子项目
  2. 执行命令 Add-Migration jkgismirationsvvv 开始执行一次 用意是创建 Migration
    执行完成后工程中多了一个文件夹如下图

.net Core Mysql/Sqlserver Migration_第1张图片
QQ截图20170104222349.png

可能会出现小错误如下图:

.net Core Mysql/Sqlserver Migration_第2张图片
migration.png
  1. 通过实体类初始化数据库,或者实体类结构修改了更新到数据库中。通过命令
    Update-Database init 这个命令第一次不会成功,不管数据库中数据库是否存在都先要调用一次这个命令 Add-Migration init,这样后面再根据实体类更新数据库调用命令Update-Database init 就不会出错
.net Core Mysql/Sqlserver Migration_第3张图片
migrationmysql.png

参考项目结构如下图 所有的命令都是在启动项目 JK.GISService 下执行:

.net Core Mysql/Sqlserver Migration_第4张图片
QQ截图201701042230310.png

Mysql 需要引入哪些包:

在启动项目 如JK.GISService 下 project.json中引用
"SapientGuardian.EntityFrameworkCore.MySql": "7.1.14"
同时 在包管理控制台窗口 针对在启动项目 如JK.GISService 安装
工具‣的NuGet包管理器‣包管理器控制台
Install-Package Microsoft.EntityFrameworkCore.Tools –Pre
Install-Package Microsoft.EntityFrameworkCore
在project.json 中tools节点中增加
"Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final" 如下:

"tools": {
"Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final",
"Microsoft.EntityFrameworkCore.Tools.DotNet": "1.0.0-preview3-final",
"Microsoft.AspNetCore.Razor.Tools": "1.0.0-preview2-final",
"Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final"
},

sqlserver 需要引用哪些包

在启动项目 如JK.GISService 下
工具‣的NuGet包管理器‣包管理器控制台
Run Install-Package Microsoft.EntityFrameworkCore

Run Install-Package Microsoft.EntityFrameworkCore.SqlServer

Run Install-Package Microsoft.EntityFrameworkCore.Tools –Pre

Run Install-Package Microsoft.EntityFrameworkCore.SqlServer.Design
在project.json 中tools节点中增加
"Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final" 如下:

"tools": {
"Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final",
"Microsoft.EntityFrameworkCore.Tools.DotNet": "1.0.0-preview3-final",
"Microsoft.AspNetCore.Razor.Tools": "1.0.0-preview2-final",
"Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final"
},

你可能感兴趣的:(.net Core Mysql/Sqlserver Migration)