无法找到名为MySql.Data.EntityFrameworkCore的提供程序程序集

时间:2017-08-18 15:16:06

标签: mysql asp.net-mvc entity-framework asp.net-core

我在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没有。

谢谢。

3 个答案:

答案 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,也可以将它们复制过来并根据需要更改名称空间。