我在Framework 4.6.x上创建了一个基于mvc core 2.0的新项目。 我想用MySql DataBase做dbFirst。 我按照定义MySql官方网站的步骤进行了操作。
使用Visual Studio中的程序包管理器控制台支持数据库。
https://dev.mysql.com/doc/connector-net/en/connector-net-entityframework-core-scaffold-example.html
完成所有步骤后,我在Package Manager Console中执行了Scaffold-DbContext 几秒钟后,出现以下错误:
无法找到名为MySql.Data.EntityFrameworkCore的提供程序程序集。确保指定的名称正确并由项目引用。
我见过SQLServer的解决方案,但MySql没有。
谢谢。
答案 0 :(得分:1)
我遇到了同样的问题,我的想法是
设置启动项目(不应是库项目类型)和目标项目,然后确保我已经安装了所有软件包。
对于MySQL,我使用的是Pomelo.EntityFrameworkCore.MySql
<PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="2.1.2" />
<PackageReference Include="Pomelo.EntityFrameworkCore.MySql.Design" Version="1.1.2" />
此命令生成数据库 dotnet ef dbcontext
dotnet ef dbcontext scaffold "server=localhost;port=3306;user=root;password=password;database=dbname;" Pomelo.EntityFrameworkCore.MySql -o Models -p targetproject -s startup project
答案 1 :(得分:1)
您只需要安装软件包
安装软件包MySql.Data.EntityFrameworkCore -Version 8.0.13
答案 2 :(得分:0)
在使用工具进行角力时,可能会出现许多问题。就我而言,我试图将其反向工程为.NET标准类库项目。不支持。我尚未将库设置为另一个项目的依赖项。
如果这是您的情况:请从可执行项目中引用类库。从Scaffold-DbContext
引用可执行项目(使用-Project
或将其设置为默认值),它应运行。默认情况下,它将生成代码文件到可执行项目中,因此您应根据需要使用other switches,也可以将它们复制过来并根据需要更改名称空间。