EFCore反向mysql踩坑"/>
EFCore反向mysql踩坑
基于数据库生成EF数据库模型过程中对于新装VS2019情况下使用官方文档方法可使用 EF Core 包管理器控制台 (PMC) 工具的 Scaffold-DbContext
命令或 .NET 命令行接口 (CLI) 工具的 dotnet ef dbcontext scaffold
命令执行这一过程。
依赖包
在.Net Core工程安装Nuget包:
Pomelo.EntityFrameworkCore.MySql
Microsoft.EntityFrameworkCore.Design
Microsoft.EntityFrameworkCore.Tools
这里安装好后执行官方文档中的反向工程命令:
dotnet ef dbcontext scaffold "server=192.168.xx.xx;port=3306;database=testlib;uid=root;pwd=123456;CharSet=utf8" Pomelo.EntityFrameworkCore.MySql
这时可能出现
dotnet : 无法执行,因为找不到指定的命令或文件。
所在位置 行:1 字符: 1
+ dotnet ef dbcontext scaffold "server=192.168.14.206;port=3306;databas ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+ CategoryInfo : NotSpecified: (无法执行,因为找不到指定的命令或文件。:String) [], RemoteException+ FullyQualifiedErrorId : NativeCommandError可能的原因包括:*内置的 dotnet 命令拼写错误。*你打算执行 .NET 程序,但 dotnet-ef 不存在。*你打算运行全局工具,但在路径上找不到具有此名称且前缀为 dotnet 的可执行文件。
该问题是由于 core3.0 以上版本dotnet ef命令不在是sdk的一部分,需要单独安装,使用如下命令:(最新版)
dotnet tool install --global dotnet-ef
这里如果你使用的是Oracle的MySql.EntityFrameworkCore包,有可能出现:
Build started...
Build succeeded.
Unable to find provider assembly 'MySql.EntityFrameworkCore'. Ensure the name is correct and it's referenced by the project.
这里注意打开包管理控制台,输入cd命令进入目标工程目录
cd D:\VCSharpProj\EFCoreTest2
注意启动项目也要改成目标项目:
更多推荐
EFCore反向mysql踩坑
发布评论