VSCode执行dotnet ef迁移命令报错connectionString参数为空如何解决
EF迁移连接字符串为空报错解决方法
根因
你遇到的connectionString为空报错,核心原因是appsettings.json中连接字符串的配置键拼写错误,Configuration.GetConnectionString("DefaultConnection")方法默认读取的是ConnectionStrings节点下的配置,你当前配置里多写了一个s,导致无法正确读取到连接字符串。
解决步骤
- 修正appsettings.json中的配置键名,同时注意JSON中需要转义反斜杠,修改后的配置如下:
"ConnectionStrings": { "DefaultConnection": "Data Source=(localdb)\\LocalDBApp1;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False" },
- (可选校验)确认Startup.cs中DbContext注入的写法是否完整,如果你有自定义的DbContext类(比如命名为
AppDbContext),需要补充泛型参数:
services.AddDbContext<AppDbContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
- 确认appsettings.json文件的「复制到输出目录」属性设置为「如果较新则复制」,避免程序运行时无法加载配置文件。
- 重新执行迁移命令:
dotnet ef migrations add InitialCreate
即可正常完成迁移初始化。
内容的提问来源于stack exchange,提问作者Sylvain
相关产品推荐
相关产品推荐

