使用Entity Framework Core脚手架数据库时SQL登录过程报错如何解决
问题排查与解决方案
- 优先修复连接字符串错误
你当前使用的连接字符串存在两个高频出错点,修改后重试:- 移除
pwd参数前的多余空格,连接字符串参数名不允许前缀空格 - 新增加密和证书信任配置,高版本EF Core SqlServer提供程序默认强制加密连接,未配置SQL证书时会触发登录错误
修正后的命令参考:
Scaffold-DbContext "Server=.\SQLExpress;Database=MediStock_DB;User ID=MyUsername;pwd=MyPassword;Encrypt=False;TrustServerCertificate=True" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models - 移除
- 确认SQL Server身份验证模式配置
打开SQL Server Management Studio,右键服务器实例选择「属性」-「安全性」,确认勾选「SQL Server和Windows身份验证模式」,修改后需重启SQL Server服务生效。 - 确认SQL Server网络配置生效
打开SQL Server配置管理器,在「SQL Server网络配置」-「对应实例的协议」中,同时启用Named Pipes和TCP/IP,配置完成后重启SQL Server服务。 - 前置验证连接可用性
不要直接执行脚手架命令,先在Visual Studio的「服务器资源管理器」中选择「添加连接」,输入和连接字符串完全一致的服务器、账号、数据库信息,点击「测试连接」,如果此处连接失败,优先解决基础连接问题再执行脚手架操作。 - 校验NuGet包版本匹配
确认项目中安装的Microsoft.EntityFrameworkCore和Microsoft.EntityFrameworkCore.SqlServer包主版本号完全一致,版本不匹配会触发非预期的连接异常。 - 确认SQL实例名正确性
在SQL Server配置管理器的「SQL Server服务」列表中,查看SQL Express实例的实际名称(括号内的部分),如果和你当前使用的SQLEXPRESS不一致,替换连接字符串中对应的实例名即可。
内容的提问来源于stack exchange,提问作者Johan Langerman
相关产品推荐
相关产品推荐

