无法找到提供程序程序集 'Microsoft.EntityFrameworkCore.SqlServer'。确保名称正确并且被项目引用

Unable to find provider assembly 'Microsoft.EntityFrameworkCore.SqlServer'. Ensure the name is correct and it's referenced by the project

你能告诉我如何解决这个问题吗?

脚手架代码:

scaffold-dbcontext "server=.\DESKTOP-UO195S8; database=BooksDB; integrated security=false;User ID=sa;Password=shvi" 
         Microsoft.EntityFrameworkcore.sqlserver -OutputDir models

简短的解决方案:将 .net core 3.1 程序集的所有内容降级到版本 3.1.15

说明:您应该检查您的 Microsoft.VisualStudio.Web.CodeGeneration.Design 版本是否与当前版本的 Microsoft.EntityFrameworkCore.SqlServer 相同。由于某些未知原因,Microsoft.VisualStudio.Web.CodeGeneration.Design 的最后一个稳定版本是 3.1.15,而 Microsoft.EntityFrameworkCore.SqlServer 的默认稳定版本目前是 3.1.18(见图 1)

因此,当您 运行 命令时,它会尝试安装一个确实与您项目中的版本不兼容的版本(可能)

VS

正在降级到 3.1.15,bob 是你的叔叔