本文介绍.net core2.1版本下 Mysql数据库采用DB first方式使用Ef
1. 新建基于.net core2.1的项目(略)
2. 从nuget中引用Microsoft.AspNetCore.App (本次使用2.1.1版本,)
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,大家可以根据自己的需求添加版本
5. 在 .csproj 文件所在的目录 按住 shift 键加鼠标右键, 打开 powershell 窗口
6. 执行代码 dotnet ef dbcontext scaffold "Server=***;User Id=***;Password=***;Database=***" "Pomelo.EntityFrameworkCore.MySql"-o Models
其中 Models 表示你需要存放实体的文件夹名
参数说明
-o 输出目录(-OutputDir)
-f 覆盖现有文件(-Force),数据库更新时会用到
-t 指定表名(-Tables)
执行完成之后就自动生成了实体
7. 注意事项
(1). 项目生成不能报错,报错后无法更新实体,报 build fail 错误
(2). 生成的时候不能有警告,有警告的字段会自动跳过该字段,导致实体比数据库少字段,或者导致该字段类型错误
(3). 如果tfs设置的是独占,那一定要先将实体全部签出,再更新,否则无法覆盖实体,导致更新不了