You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从appsettings.json读连接字符串执行Scaffold-DbContext报错,手动输入正常

问题原因及解决办法

核心原因

你执行反向生成命令时,-connection参数的name=EnviroWatchDB未用引号包裹,导致EF Core工具错误地将整个字符串视作实际连接字符串,而非从配置文件读取连接字符串的标识。工具会尝试解析name为数据库服务器主机名,因此抛出UriFormatException。

解决步骤

  1. 给连接字符串标识加引号
    将name=EnviroWatchDB用双引号包裹,确保它作为完整参数传递:

    Scaffold-DbContext -connection "name=EnviroWatchDB" `
             Microsoft.EntityFrameworkCore.SqlServer `
             -Tables DeviceParameterWithDevice -Context DPWDContext `
             -OutputDir Models
    
  2. 验证配置文件的输出属性
    检查appsettings.json和appsettings.Development.json的文件属性,确保“复制到输出目录”设置为如果较新则复制或始终复制,避免工具找不到配置文件。

额外说明

你在Program.cs中添加的AddDbContext配置对反向生成命令无效——EF Core工具不会运行项目的启动代码,而是独立加载配置文件。

内容的提问来源于stack exchange,提问作者rs77can

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 18:22:39