写在前面


在前一小节中,我们创建了基于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

ASP.NET Core 3.0 WebApi 系列【2】.Net Core 3.0+ CodeFirst + MySql 实现数据的迁移的更多相关文章

  1. ASP.NET Core 2.2 WebApi 系列【二】使用EF CodeFirst创建数据库

    Code First模式 Code First是指"代码优先"或"代码先行". Code First模式将会基于编写的类和配置,自动创建模型和数据库. 一.准备 ...

  2. ASP.NET Core 2.2 WebApi 系列【九】使用SignalR (作者:tenghao510 ) 学习及内容补充

    原文地址:  ASP.NET Core 2.2 WebApi 系列[九]使用SignalR 今天,看到了大牛的这篇博文,  发了一下评论, 我很惊喜, 没想到他很快就回复了我,  而且通过QQ帮助了S ...

  3. ASP.NET Core 3.0 WebApi 系列【1】创建ASP.NET Core WebApi 项目

    目录 写在前面 一.运行环境 二.项目搭建 三.测试 API 四.基础知识 五.写在最后 写在前面 C#语言可以创建RESTful服务,被称作WebApi.在这里总结学习使用支持创建.读取.更新.删除 ...

  4. ASP.NET Core 2.2 WebApi 系列【一】搭建ASP.NET Core WebApi项目

    一.步骤 从“文件”菜单中选择“新建”>“项目” . 选择“ASP.NET Core Web 应用程序”模板,再单击“下一步” . 将项目命名为 NetCoreWebApi,然后单击“创建” . ...

  5. ASP.NET Core 2.2 WebApi 系列【八】统一返回格式(返回值、模型验证、异常)

    现阶段,基本上都是前后端分离项目,这样一来,就需要前后端配合,没有统一返回格式,那么对接起来会很麻烦,浪费时间.我们需要把所有接口及异常错误信息都返回一定的Json格式,有利于前端处理,从而提高了工作 ...

  6. ASP.NET Core 2.2 WebApi 系列【六】泛型仓储模式

    为什么要使用泛型仓储?好处是? 前两章在autofac注入的时候,用的User类作为例子,写了增删改查四个接口,也就是仓储的GRUD. 当我们再添加一个实体(比如Student)时,StudentRe ...

  7. ASP.NET Core 2.2 WebApi 系列【九】使用SignalR

    1.添加 SignalR 客户端库 右键点击项目->然后选择“添加” >“客户端库” 提供程序选择:unpkg ,库选择:@aspnet/signalr@1.1.4 选择“选择特定文件” ...

  8. ASP.NET Core 2.2 WebApi 系列【七】泛型仓储模式和工作单元

    在之前的泛型仓储模式实现中,每个增删改都调用了SaveChanges方法,导致每次更新都提交了事务. 在实际开发过程中,我们经常遇到同时操作多张表数据,那么按照之前的写法,对数据库提交了多次操作,开启 ...

  9. ASP.NET Core 2.2 WebApi 系列【五】MiniProfiler与Swagger集成

    MiniProfiler 是一款性能分析的轻量级程序,可以基于action(request)记录每个阶段的耗时时长,还是可以显示访问数据库时的SQL(支持EF.EF Code First)等 一.安装 ...

随机推荐

  1. Hive的数据倾斜

    目录 什么是数据倾斜 Hadoop框架的特性 主要表现 容易数据倾斜的情况 产生数据清洗的原因 业务场景 空值产生的数据倾斜 不同数据类型关联产生数据倾斜 大小表关联查询产生数据倾斜 一.什么是数据倾 ...

  2. mysql Waiting for table flush

    应用突然被hang住了,tomcat日志报错,所有涉及到数据库的操作都报错,卡死. show processlist 查看到大量的:Waiting for table flush 应该是 进行了 dd ...

  3. AssetBundleMaster_Introduce_EN

    This is an integrated solution for building AssetBundles and loading Assets. what it can do is about ...

  4. 简简单单,jquery中,使用checkbox控制div的显示与隐藏

    今天开发代码时,发现好久不用jquery就生疏了. 所以作这个记录, 使用checkbox控制div的显示与隐藏. 一,html代码处: <input type="checkbox&q ...

  5. 201871020225-牟星源《面向对象程序设计(java)》第十五周学习总结

    201871020225-牟星源<面向对象程序设计(java)>第十五周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ ...

  6. 配置 application.properties

    # 数据库链接信息mysql.driver=com.mysql.cj.jdbc.Drivermysql.url=jdbc:mysql://localhost:3306/mydemo?character ...

  7. dateNode 启动不了

    dateNode 启动不了 进去路径中找到  name和data文件夹,current下面分别有 一个 version文件,打开发现两个clusterId都不一样 把name和data文件里面的ver ...

  8. 关于c# 中读取系统内存大小的问题。

    在程序中,调用WMI的时候,出现一个问题,就是我系统有插了两条内存条,共4G.然而自己只能在程序中查到安装内存为2G,感觉有点不淡定.这是之前的代码. static ManagementObjectS ...

  9. 误删除/boot ,如何修复

    进入救援模式 1.chroot /mnt/sysimage  将路径修改为 /mnt/sysimage 2.mkdir /mnt/temp mount /dev/sr0 /mnt/temp 挂载光盘 ...

  10. git开发中常用命令

    项目代码克隆岛本地 git clone 项目地址 #如:git clone http://cngit.fir.ai/data_service/distributedstorage.git 克隆指定分支 ...