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

问题描述 投票:2回答:2

我在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控制台中执行了Scaffold-DbContext几秒钟后,出现以下错误:

无法找到名为MySql.Data.EntityFrameworkCore的提供程序程序集。确保指定的名称正确并由项目引用。

我见过SQLServer的解决方案但不是MySql的解决方案。

谢谢。

mysql asp.net-mvc entity-framework asp.net-core
2个回答
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

0
投票

在与工具进行摔跤时,可能存在各种问题。在我的例子中,我试图逆向工程到.NET标准类库项目。这不受支持。我还没有将库设置为对另一个项目的依赖。

如果这是您的情况:从可执行项目引用类库。从Scaffold-DbContext引用可执行项目(使用-Project或将其设置为默认值),它应该运行。默认情况下,它会将代码文件生成到可执行项目中,因此您应该根据需要使用other switches,或者您可以将它们复制并根据需要更改名称空间。

© www.soinside.com 2019 - 2024. All rights reserved.