写在前面
在前一小节中,我们创建了基于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 Core
和ASP.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)。