美文网首页dotnet coredotNET
.net Core Mysql/Sqlserver Migrat

.net Core Mysql/Sqlserver Migrat

作者: bbmm | 来源:发表于2017-01-04 22:42 被阅读42次

    .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<DomainModelContext> options) : base(options) {
    }

        public DbSet<tabBaseInfo> tabBaseInfo { get; set; }
        public DbSet<tabProjectInfo> tabProjectInfo { get; set; }
    
        protected override void OnModelCreating(ModelBuilder builder)
        {
            builder.Entity<tabBaseInfo>().HasKey(m => m.id);
            builder.Entity<tabProjectInfo>().HasKey(m => m.id);
    
            base.OnModelCreating(builder);
        } }  
    
    1. 启动项目必须引用包含有自定义DbContext类的子项目
    2. 执行命令 Add-Migration jkgismirationsvvv 开始执行一次 用意是创建 Migration
      执行完成后工程中多了一个文件夹如下图
    QQ截图20170104222349.png
    可能会出现小错误如下图: migration.png
    1. 通过实体类初始化数据库,或者实体类结构修改了更新到数据库中。通过命令
      Update-Database init 这个命令第一次不会成功,不管数据库中数据库是否存在都先要调用一次这个命令 Add-Migration init,这样后面再根据实体类更新数据库调用命令Update-Database init 就不会出错
    migrationmysql.png

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

    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 Migrat

        本文链接:https://www.haomeiwen.com/subject/uieavttx.html