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

在Package Manager Console执行Update-Database时连接字符串未初始化错误

解决Update-Database时"The ConnectionString property has not been initialized."错误

1. 连接字符串键拼写不匹配(核心问题)

你在appsettings.json里定义的连接字符串键是DefautConnection(少了一个字母l),但在Program.cs里读取的是DefaultConnection,两者不匹配导致GetConnectionString返回null,EF Core无法获取到连接字符串。

修改appsettings.json中的连接字符串键:

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
    }
  },
  "AllowedHosts": "*",
  "ConnectionStrings": {
    "DefaultConnection": "server=LENOVO_NOV\\MSSQLEXPRESS;database=KiemTra2;integrated security=true;trustservercertificate=true"
  }
}

2. 修复Program.cs的请求管道逻辑错误

你的Program.cs中把所有中间件配置都放在了!app.Environment.IsDevelopment()分支里,这意味着开发环境下程序不会加载任何中间件,也不会执行app.Run(),不仅程序无法正常运行,还可能导致EF Core命令无法正确读取配置。

调整后的Program.cs代码:

using EditUserRazor.Data;
using Microsoft.EntityFrameworkCore;
using EditUserRazor.Models;

namespace EditUserRazor {
    public class Program
    {
        public static void Main(string[] args)
        {
            var builder = WebApplication.CreateBuilder(args);

            // Add services to the container.
            builder.Services.AddRazorPages();

            //DI
            builder.Services.AddDbContext<UserDbContext>(options => options.UseSqlServer(builder.Configuration.GetConnectionString("DefaultConnection")));

            var app = builder.Build();

            // Configure the HTTP request pipeline.
            if (!app.Environment.IsDevelopment())
            {
                app.UseExceptionHandler("/Error");
                app.UseHsts();
            }

            // 公共中间件,所有环境都需要
            app.UseHttpsRedirection();
            app.UseStaticFiles();

            app.UseRouting();

            app.UseAuthorization();

            app.MapRazorPages();

            app.Run();
        }
    }
}

3. 确认UserDbContext的构造函数正确

确保你的UserDbContext类构造函数接受DbContextOptions<UserDbContext>参数并传递给基类,这样依赖注入才能正确传递连接字符串配置:

using Microsoft.EntityFrameworkCore;
using EditUserRazor.Models;

namespace EditUserRazor.Data
{
    public class UserDbContext : DbContext
    {
        public UserDbContext(DbContextOptions<UserDbContext> options) : base(options)
        {
        }

        public DbSet<User> Users { get; set; }
    }
}

完成以上修改后,重新在Package Manager Console中执行Update-Database命令即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 23:47:30