.NET 6中Scaffold-DbContext报错:无法生成实体类
解决Scaffold-DbContext连接SQL Server的SSL证书错误及COM权限问题
一、处理SSL证书链不受信任错误
这是导致Scaffold-DbContext命令失败的直接原因,提供两种解决方式:
临时快速解决(适合本地开发)
修改连接字符串,添加TrustServerCertificate=True参数跳过SSL证书验证,执行以下命令:
Scaffold-DbContext "Server=MyLaptop-xxxx/SQLEXPRESS; DataBase=db-example;Integrated Security=true;TrustServerCertificate=True" Microsoft.EntityFrameworkCore.SqlServer -OutPutDir Models
永久解决(推荐规范环境)
为SQL Server配置可信SSL证书:
- 打开SQL Server配置管理器,导航至
SQL Server网络配置 -> [你的实例名,如SQLEXPRESS]的协议 - 右键启用
TCP/IP,双击进入属性窗口,切换到证书选项卡,选择已安装的可信证书(可使用自签证书并导入本地信任根证书库) - 重启SQL Server服务,后续连接将不再触发证书错误
二、处理COM服务器本地激活权限问题
针对SSMS日志中的权限提示,按以下步骤修改:
- 按下
Win+R输入dcomcnfg打开组件服务 - 依次展开
组件服务 -> 计算机 -> 我的电脑 -> DCOM配置 - 右键点击DCOM配置列表,选择
查看 -> 列,勾选CLSID,找到日志中对应CLSID的应用程序 - 右键该应用程序,选择
属性 -> 安全选项卡 - 在启动和激活权限区域选择
自定义,点击编辑,添加你的用户账号(LAPTOP-xxxx\user),勾选本地激活权限 - 保存设置后,重启相关服务或电脑即可生效
内容的提问来源于stack exchange,提问作者David Paredes
相关产品推荐
相关产品推荐

