开发软件:VisualStudio2022,EFCore6.0
.net Core版本:.Net6.0
数据库:mysql8.0
数据库管理软件:Navicat
打开Navicat,点击新建查询,输入如下Sql语句,创建一个名为EFCoreLearn的数据库。(自己先安装好Mysql,本实例中使用Mysql8.0)
CREATE DATABASE
IF NOT EXISTS EFCoreLearn
DEFAULT CHARSET utf8
COLLATE utf8_general_ci;
创建好数据库后,选择改数据,新建一个查询,输入如下Sql语句,创建一个Students表,
CREATE TABLE IF NOT EXISTS `Students`
(
`StudentId` INT UNSIGNED AUTO_INCREMENT,
`Name` VARCHAR(50) NOT NULL,
`Class` VARCHAR(50) NOT NULL,
PRIMARY KEY (`StudentId`)
);
运行上述语句后,可以成功创建数据库和数据表如下:
这里用控制台来作为演示,即使不懂Asp.Net Core 里的小白也能看懂和理解EFCore项目。
项目初始结构如下:
安装Mysql的EF CoreNuGet程序包,这里安装第三方提供的Pomelo.EntityFrameworkCore。
安装方式有如下两种:
1、命令行式安装:
2、通过Visual Studio的包管理器
从 Visual Studio 菜单中选择“工具”>“NuGet> 包管理器”>“管理解决方案的NuGet程序包”,搜索并选择所需要的包进行安装即可。需要的包有:Microsoft.EntityFrameworkCore.Tools、Pomelo.EntityFrameworkCore.MySql。
或者在 "程序包管理控制台"里输入:
Install-Package Microsoft.EntityFrameworkCore.Tools
Install-Package Pomelo.EntityFrameworkCore.MySql
EF Core不支持用于可视化设计器的DB模型和向导来创建类似于EF 6的实体和
上下文类。因此,我们需要使用以下Scaffold-DbContext命令进行逆向工程。
此逆向工程命令DbContext基于现有数据库的架构来创建实体和上下文类(通过派生)。
dotnet ef dbcontext scaffold “Server=localhost;Database=efcorelearn;User=root;Password=password;” “Pomelo.EntityFrameworkCore.MySql” -o Models
或者使用Nuget控制台管理
在VisualStudio 里找到视图>其他窗口>程序包控制管理台,输入:
Scaffold-DbContext -Force “Server=127.0.0.1;User Id=root;Password=yourpassword;Database=efcorelearn” -Provider “Pomelo.EntityFrameworkCore.MySql” -OutputDir Models
其中上面的