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

.NET中Scaffold-DbContext遇密码末尾单引号报错求助

解决Pomelo.EntityFrameworkCore.MySql连接字符串密码含末尾单引号的问题

有效转义方案

针对密码末尾带单引号的场景,直接用**双单引号''**替换密码里的单个单引号即可,不需要给密码值额外加引号包裹。修改后的Package Manager控制台命令如下:

PM> Scaffold-DbContext "server=remoteServe, port=3306; User Id=Myuser; database=database; Password=1234''" Pomelo.EntityFrameworkCore.MySql -OutputDir Models -ContextDir Context

原理:在.NET的连接字符串解析规则中,当整个连接字符串用双引号包裹时,内部的两个单引号会被解析为一个实际的单引号,刚好匹配你的密码格式。

备选方案:使用MySQL URL格式连接字符串

如果上述方式仍有问题,可以切换为URL风格的连接字符串,此时单引号可直接保留(或用URL编码%27替换):

# 直接保留单引号
PM> Scaffold-DbContext "mysql://Myuser:1234'@remoteServe:3306/database" Pomelo.EntityFrameworkCore.MySql -OutputDir Models -ContextDir Context

# 或用URL编码替换单引号
PM> Scaffold-DbContext "mysql://Myuser:1234%27@remoteServe:3306/database" Pomelo.EntityFrameworkCore.MySql -OutputDir Models -ContextDir Context

为什么之前的尝试无效?

你之前给password的值额外添加双引号/单引号的写法(比如password="****'")不符合.NET连接字符串的键值对规则,连接字符串的键值对直接是Key=Value格式,Value不需要额外嵌套引号,多余的引号会被当作连接字符串的一部分,导致解析报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 06:45:48