执行scaffold-dbcontext时找不到Microsoft.EntityFrameworkCore.SqlServer程序集如何解决
Scaffold-DbContext 找不到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
解决方案
- 第一步修正命令中的包名拼写:NuGet包名严格区分大小写,原命令里的
Microsoft.EntityFrameworkcore.sqlserver大小写错误,需要替换为官方标准名称Microsoft.EntityFrameworkCore.SqlServer,修正后的命令参考:
Scaffold-DbContext "server=.\DESKTOP-UO195S8; database=BooksDB; integrated security=false;User ID=sa;Password=shvi" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models
- 确认目标项目已经安装了对应版本的三个依赖NuGet包,包的大版本需要和项目使用的.NET SDK大版本保持一致,不要跨版本安装:
Microsoft.EntityFrameworkCore.DesignMicrosoft.EntityFrameworkCore.SqlServerMicrosoft.EntityFrameworkCore.Tools
- 确认包管理器控制台顶部的「默认项目」选项选中的是你要生成实体类的目标项目,避免包安装到其他项目导致找不到程序集。
- 如果以上操作完成还是报错,先清理项目,删除根目录下的bin、obj文件夹,重新编译项目后再执行脚手架命令即可。
内容的提问来源于stack exchange,提问作者abdulraheem alarpi
相关产品推荐
相关产品推荐

