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

.NET Core 6找不到指定连接字符串的原因及Program.cs配置方案

问题分析与解决方案

错误原因

  • .NET Core 6不识别数据层自动生成的App.config文件,这是.NET Framework的传统配置格式,Web项目的配置依赖appsettings.json,两者不兼容。
  • 你的DbContext可能默认尝试从App.config读取连接字符串,或者在Program.cs注册DbContext时,没有正确指定从appsettings.json读取配置,导致找不到匹配的连接字符串(错误提示中空字符串说明连配置项名称都未匹配到)。
  • 另一种可能是DbContext类没有提供接收DbContextOptions<T>的构造函数,导致无法注入正确的连接配置。

配置步骤(Program.cs)

假设你的appsettings.json中连接字符串配置如下:

{
  "ConnectionStrings": {
    "YourDbContextName": "Server=你的服务器地址;Database=你的数据库名;Trusted_Connection=True;"
  }
}
  1. 修正DbContext构造函数
    在数据层的DbContext类中,添加接收配置参数的构造函数:
public class YourDbContext : DbContext
{
    public YourDbContext(DbContextOptions<YourDbContext> options) : base(options)
    {
    }
    // 此处定义你的DbSet集合
}
  1. 在Program.cs中注册DbContext
    在Web项目的Program.cs里,添加DbContext的服务注册逻辑,明确从appsettings.json读取连接字符串:
var builder = WebApplication.CreateBuilder(args);

// 注册DbContext并绑定连接字符串
builder.Services.AddDbContext<YourDbContext>(options =>
    options.UseSqlServer(builder.Configuration.GetConnectionString("YourDbContextName")));

// 其他服务注册代码(如控制器、Swagger等)

var app = builder.Build();

// 中间件配置代码(如路由、授权等)

app.Run();
  1. 清理无效配置
    删除数据层的App.config文件,.NET Core项目不需要该文件,避免后续混淆。

注意事项

  • 确保appsettings.json中的连接字符串名称,和GetConnectionString方法传入的名称完全一致,大小写敏感。
  • 如果使用SQL Server以外的数据库(如MySQL、PostgreSQL),将UseSqlServer替换为对应数据库的EF Core扩展方法(如UseMySql),并确保已安装对应的驱动包。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 03:33:30