• ASP.NET Core 3.0 WebApi 系列【2】.Net Core 3.0+ CodeFirst + MySql 实现数据的迁移


    写在前面


    在前一小节中,我们创建了基于RESFULL风格的服务。这个小节,尝试使用CodeFirst+MySql 的方式实现数据迁移。

    一、开发环境


    【1】运行环境:win10 家庭版

    【2】开发工具:Visual Studio 2019 16.3.10

    【3】数据库:MySql 8.0.0

    二、创建项目


    【1】从文件菜单中选择新建 >项目 将项目命名为 TodoApi 然后单击创建。 如图所示:

    【2】选择ASP.NET Core Web 应用程序模板 再单击下一步

    【3】在创建新的 ASP.NET Core Web 应用程序对话框中,确认选择.NET CoreASP.NET Core 3.0。选择API模板,然后单击创建。如图所示:

    【4】最后,创建成功。如下图所示:

    三、安装包


    要使用.NET CORE 3.0 + CodeFirst+ MySql 实现数据库必须要在项目中安装以下的包:

    注意:一个也不能少!!!一个也不能少!!!一个也不能少!!!

    【1】选择工具->NuGet包管理器->NuGet程序包。 如图所示:

    【2】搜索Microsoft.EntityFrameworkCore的版本,安装3.0.1的版本。所图所示:

    【3】搜索Microsoft.EntityFrameworkCore.Design的版本,安装3.0.1的版本。所图所示:

    【4】搜索Microsoft.EntityFrameworkCore.Tools的版本,安装3.0.1的版本。所图所示:

    【5】搜索Pomelo.EntityFrameworkCore.MySql的版本,安装3.0.0的版本。所图所示:

    三、创建实体


    在项目中创建TodoItem

    using System.ComponentModel.DataAnnotations;
    using System.ComponentModel.DataAnnotations.Schema;
    
    namespace TodoApi
    {
        public class TodoItem
        {
            [Key]
            [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
            public long Id { get; set; }
            public string Name { get; set; }
            public bool IsComplete { get; set; }
        }
    }
    

    四、创建上下文类


    注意:创建上下类时,使用DbContext的接口 需要引用using Microsoft.EntityFrameworkCore

    using Microsoft.EntityFrameworkCore;
    
    namespace TodoApi
    {
        public class TodoContext:DbContext
        {
            public TodoContext(DbContextOptions<TodoContext> options) : base(options) { }
            public DbSet<TodoItem> todoItems { get; set; }
        }
    }
    
    

    五、配置连接字符串


    //应用程序配置文件,类似于ASP.NET MVC应用程序中的Web.config配置文件
    {
      "Logging": {
        "LogLevel": {
          "Default": "Information",
          "Microsoft": "Warning",
          "Microsoft.Hosting.Lifetime": "Information"
        }
      },
      "AllowedHosts": "*",
      "ConnectionStrings": { 
        "MqStr": "Data Source=localhost;port=3306;database=todoapi;User Id=root;Password=root"
      }
    }
    
    
    

    六、使用依赖注入将上下文注册为服务


    打开Startup.cs类 找到ConfigureServices服务,使用依赖注入将上下文注册为服务

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddControllers();
        var mqstr = Configuration.GetConnectionString("MqStr");
        services.AddDbContext<TodoContext>(ops=> ops.UseMySql(mqstr));
    }
    
    

    注意:使用UseMySQL时,需要引用using Microsoft.EntityFrameworkCore

    七、迁移并创建数据库


    使用操作命令迁移或者创建数据库

    【1】在工具->NuGet 包管理器>程序包管理器控制台 执行以下命令:Add-Migration mydata 执行成功后,在项目中生成Migrations的文件夹。如下图所示:

    【2】然后,在控制台输入Update-Database 更新数据库的命令。如下图所示:

    【3】最后,我们打开Navicat Premium工具 连接MySql 数据库。若创建成功,如下图所示:

    写在最后


    以上实例,都是经过本人亲自测试可行的哟。对于,小白入门来说还是挺适合的。(ps:毕竟本人也是一个菜鸟)

    如若其中有误的地方,请给我留言。我会尽快的认真的回复与修正错误的。

    谢谢~~今天就分享到这里(mark:最后撰稿时间:2019-11-30 02:07:00)。

    参考文档1

  • 相关阅读:
    阿里云磁盘扩容
    【Vue】WebPack 忽略指定文件或目录
    MySQL 全文索引 (FullText)
    产品设计
    13-Java面向对象-抽象类与接口
    06-数据存储
    07-网络与通信-02-Android中基于HTTP的通信技术
    10-Android 广播接收器 BroadcastReceiver
    09-Android 中 AIDL 的理解与使用
    09-Android 中 AIDL 的理解与使用
  • 原文地址:https://www.cnblogs.com/ZengJiaLin/p/11938585.html
Copyright © 2020-2023  润新知