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

ASP.NET Core 6 MVC执行Update-Database时连接字符串未初始化报错求助

ASP.NET Core 6 MVC Update-Database 报错:ConnectionString 未初始化

执行Update-Database命令时出现以下错误:

The ConnectionString property has not been initialized

相关配置与代码

  • 连接字符串(配置文件中):
"connstr": "Server=COMPUTADOR\\MSSQLSERVERGERA;Database=master;Trusted_Connection=True;User Id=admin;Password=admin;"
  • Program.cs 代码:
builder.Services.AddDbContext<MyDbContext>(options => {
       options.UseSqlServer(builder.Configuration.GetConnectionString("connstr"));
});
  • DbContext 代码:
public class MyDbContext : DbContext
{
    public MyDbContext(DbContextOptions options) : base(options)
    {
    }

    public DbSet<Employee> Employees { get; set; }
}

解决步骤

  1. 修正配置文件结构
    确保连接字符串位于appsettings.json的ConnectionStrings节点下,GetConnectionString方法默认读取该节点下的配置,直接放在根节点会导致读取失败:
{
  "ConnectionStrings": {
    "connstr": "Server=COMPUTADOR\\MSSQLSERVERGERA;Database=master;Trusted_Connection=True;User Id=admin;Password=admin;"
  }
}
  1. 完善DbContext构造函数
    将构造函数的泛型参数改为DbContextOptions<MyDbContext>,避免配置注入异常:
public class MyDbContext : DbContext
{
    public MyDbContext(DbContextOptions<MyDbContext> options) : base(options)
    {
    }

    public DbSet<Employee> Employees { get; set; }
}
  1. 确认Package Manager Console默认项目
    打开Visual Studio的Package Manager Console,检查“默认项目”下拉框是否选中包含MyDbContext和迁移文件的项目,选错项目会导致命令无法找到正确配置。

  2. 备选:直接读取配置值
    若上述方法无效,可跳过GetConnectionString方法,直接读取配置:

builder.Services.AddDbContext<MyDbContext>(options => {
       options.UseSqlServer(builder.Configuration["connstr"]);
});
  1. 检查配置文件复制属性
    右键appsettings.json文件,进入“属性”面板,将“复制到输出目录”设置为“如果较新则复制”或“始终复制”,防止运行时找不到配置文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 22:07:05