.net core 2.1 Ef 连接Mysql数据库 DB first

时间:2020-12-16 13:10:09

本文介绍.net core2.1版本下 Mysql数据库采用DB first方式使用Ef

点击查看更简单的方法

1. 新建基于.net core2.1的项目(略)

2. 从nuget中引用Microsoft.AspNetCore.App (本次使用2.1.1版本,)

.net core 2.1 Ef 连接Mysql数据库 DB first

3. 从nuget中引用Pomelo.EntityFrameworkCore.MySql (本次使用2.1.2), Microsoft.EntityFrameworkCore(本次使用2.1.3),Microsoft.EntityFrameworkCore.Relational(本次使用2.1.3)  保存整个项目

 

4. 打开项目文件夹, 找到.csproj 文件, 文本文档打开,在itemGroup中添加 <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.3" />

本次使用的版本是2.0.3,大家可以根据自己的需求添加版本

.net core 2.1 Ef 连接Mysql数据库 DB first

 

 .net core 2.1 Ef 连接Mysql数据库 DB first

5. 在 .csproj 文件所在的目录 按住 shift 键加鼠标右键, 打开 powershell 窗口

.net core 2.1 Ef 连接Mysql数据库 DB first

6. 执行代码  dotnet ef dbcontext scaffold "Server=***;User Id=***;Password=***;Database=***" "Pomelo.EntityFrameworkCore.MySql"-o Models 

 其中 Models 表示你需要存放实体的文件夹名

参数说明

-o 输出目录(-OutputDir)

-f 覆盖现有文件(-Force),数据库更新时会用到

-t 指定表名(-Tables)

.net core 2.1 Ef 连接Mysql数据库 DB first

执行完成之后就自动生成了实体

.net core 2.1 Ef 连接Mysql数据库 DB first

 7. 注意事项

(1). 项目生成不能报错,报错后无法更新实体,报 build fail 错误

(2). 生成的时候不能有警告,有警告的字段会自动跳过该字段,导致实体比数据库少字段,或者导致该字段类型错误

(3). 如果tfs设置的是独占,那一定要先将实体全部签出,再更新,否则无法覆盖实体,导致更新不了