我在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,我使用的是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
在与工具进行摔跤时,可能存在各种问题。在我的例子中,我试图逆向工程到.NET标准类库项目。这不受支持。我还没有将库设置为对另一个项目的依赖。
如果这是您的情况:从可执行项目引用类库。从Scaffold-DbContext
引用可执行项目(使用-Project
或将其设置为默认值),它应该运行。默认情况下,它会将代码文件生成到可执行项目中,因此您应该根据需要使用other switches,或者您可以将它们复制并根据需要更改名称空间。