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

.NET5使用EF Core执行update-migrations出现初始化字符串格式错误如何解决

错误根因
  • 配置代码逻辑错误:你在Startup.cs中调用UseSqlServer()时直接传入了字面量字符串"DefaultConnection",EF Core会将该字符串直接作为连接字符串解析,而非去读取配置文件中DefaultConnection对应的实际连接值,自然完全不符合连接字符串格式要求,触发从索引0开始的格式校验报错。
  • 潜在的JSON转义问题:JSON语法中反斜杠\是转义字符,如果你直接将带(localdb)\MSSQLLocalDB的连接字符串粘贴到appsettings.json中没有做转义,解析后的连接字符串会丢失反斜杠,导致格式异常。
解决方法
  1. 修正DbContext注入代码,通过配置服务读取连接字符串:
    首先确保Startup.cs的构造函数已经注入IConfiguration,再修改注入逻辑:
public class Startup
{
    public IConfiguration Configuration { get; }
    public Startup(IConfiguration configuration)
    {
        Configuration = configuration;
    }

    public void ConfigureServices(IServiceCollection services)
    {
        // 其他服务注册...
        services.AddDbContext<AppDbContext>(options => 
            options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
    }
}
  1. 修正appsettings.json中的连接字符串格式,注意反斜杠转义,建议使用简化后的无冗余参数格式:
{
  "ConnectionStrings": {
    // 注意反斜杠要写两个做转义,不要直接用master作为业务库,改成你自己的业务数据库名
    "DefaultConnection": "Server=(localdb)\\MSSQLLocalDB;Database=你的业务库名称;Trusted_Connection=True;"
  }
}

如果你使用的是SQL Express,对应调整连接字符串即可:

"DefaultConnection": "Server=localhost\\SQLEXPRESS;Database=你的业务库名称;Trusted_Connection=True;"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 09:36:04