NetCore版本 2.1
1.点击“工具”->“NuGet包管理器”->“程序包管理器控制台”
分别安装以下几个包
Mysql 版本:
MySql.Data.EntityFrameworkCore V-8.0.16 Pomelo.EntityFrameworkCore.MySql V-2.1.1 Microsoft.EntityFrameworkCore.Tools V-2.1.1 Microsoft.VisualStudio.Web.CodeGeneration.Design V-2.1.1
2.在程序包包管理器控制台 中执行以下语句生成 实体类
Scaffold-DbContext "server=.;userid=;pwd=xxx;port=3306;database=;sslmode=none;" Pomelo.EntityFrameworkCore.MySql -OutputDir Models -Force
参数说明:
-OutputDir *** 实体文件所存放的文件目录
-ContextDir *** DbContext文件存放的目录
-Context *** DbContext文件名
-Schemas *** 需要生成实体数据的数据表所在的模式
-Tables *** 需要生成实体数据的数据表的集合
-DataAnnotations
-UseDatabaseNames 直接使用数据库中的表名和列名(某些版本不支持)
-Force 强制执行,重写已经存在的实体文件
在这里需要注意的问题
项目结构
1.Web
2.Entity
1.实体生成在Entity 中,但是Pomelo.EntityFrameworkCore.MySql 报错 了,但是在Web项目中就能生成
解决方案 主项目添加实体项目的依赖 问题解决
2.从数据库读取到内存时 报了错误 显示
Void Microsoft.EntityFrameworkCore.Storage.Internal.RelationalParameterBuilder..ctor(Microsoft.EntityFrameworkCore.Storage.IRelationalTypeMapper
原因是因为Pomelo.EntityFrameworkCore.MySql 的版本 V2.0.0 改成 V2.1.1 的解决问题
综上 nuget 的引用 安装的时候自动会检测 依赖会大大降低 包版本的问题,但是 有的问题还是不能自定检测出来。
如果想避免此类的问题尽量引用相同版本的包!