从appsettings.json读连接字符串执行Scaffold-DbContext报错,手动输入正常
问题原因及解决办法
核心原因
你执行反向生成命令时,-connection参数的name=EnviroWatchDB未用引号包裹,导致EF Core工具错误地将整个字符串视作实际连接字符串,而非从配置文件读取连接字符串的标识。工具会尝试解析name为数据库服务器主机名,因此抛出UriFormatException。
解决步骤
给连接字符串标识加引号
将name=EnviroWatchDB用双引号包裹,确保它作为完整参数传递:Scaffold-DbContext -connection "name=EnviroWatchDB" ` Microsoft.EntityFrameworkCore.SqlServer ` -Tables DeviceParameterWithDevice -Context DPWDContext ` -OutputDir Models验证配置文件的输出属性
检查appsettings.json和appsettings.Development.json的文件属性,确保“复制到输出目录”设置为如果较新则复制或始终复制,避免工具找不到配置文件。
额外说明
你在Program.cs中添加的AddDbContext配置对反向生成命令无效——EF Core工具不会运行项目的启动代码,而是独立加载配置文件。
内容的提问来源于stack exchange,提问作者rs77can
相关产品推荐
相关产品推荐

