您的当前位置:首页正文

EFCore 从入门到精通-2(初体验)

2025-01-16 来源:个人技术集锦

1、 准备条件

1.1 工具准备
	开发软件:VisualStudio2022,EFCore6.0
	.net Core版本:.Net6.0
	数据库:mysql8.0
	数据库管理软件:Navicat
1.2 创建数据库和数据表

打开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`)	
);

运行上述语句后,可以成功创建数据库和数据表如下:

2、新建一个控制台项目

这里用控制台来作为演示,即使不懂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

3、用于Scaffold-DbContext基于现有数据库创建模型(EFCore反向工程)

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

其中上面的

  • Server=你的数据所在的ip地址,
  • Database=你的数据库名称
  • User 是你连接数据的用户名,
  • Password=你的Password,
  • -O 后的Models是指文件名称。

显示全文