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

.NET 6中ASP.NET Core Web API配置SQL Server连接字符串及AddDbContext未识别问题咨询

在.NET 6的ASP.NET Core Web API中配置SQL Server连接字符串

嗨,我太懂你这种适应新框架结构的困惑了——.NET 6引入了顶级语句和简化的Program.cs结构,把原来的Startup类和Program类合并到了一起,原来的写法自然就不适用了,别担心,我给你一步步讲清楚正确的配置方式:

核心变化说明

在.NET 6里,我们不再需要Startup类的ConfigureServices和Configure方法,而是直接在Program.cs里用WebApplication.CreateBuilder(args)创建应用构建器,通过builder.Services来注册服务(这就对应原来Startup里的IServiceCollection),通过builder.Configuration来读取配置(和原来的Configuration完全一样)。

正确配置DbContext的代码示例

直接在Program.cs里这样写就可以了:

var builder = WebApplication.CreateBuilder(args);

// 先添加Web API的控制器服务(按需保留)
builder.Services.AddControllers();

// 重点:配置你的DbContext,和原来的逻辑一致,只是调用入口变了
builder.Services.AddDbContext<DEMOWTSSPortalContext>(options =>
    options.UseSqlServer(builder.Configuration.GetConnectionString("DefaultConnection")));

// 构建应用实例
var app = builder.Build();

// 配置中间件(比如授权、路由,按需添加)
app.UseAuthorization();

// 映射控制器路由
app.MapControllers();

// 启动应用
app.Run();

连接字符串的配置

连接字符串还是和之前一样,放在appsettings.json里,格式完全没变:

{
  "ConnectionStrings": {
    "DefaultConnection": "Server=你的SQL服务器地址;Database=DEMOWTSSPortal;Trusted_Connection=True;TrustServerCertificate=True;"
  }
}

必要的NuGet包提醒

别忘了安装EF Core的SQL Server提供者包,否则UseSqlServer会找不到:

  • 核心包:Microsoft.EntityFrameworkCore.SqlServer
  • 如果需要使用EF Core迁移工具,还要安装:Microsoft.EntityFrameworkCore.Design

你可以通过NuGet包管理器安装,或者用命令行:

Install-Package Microsoft.EntityFrameworkCore.SqlServer
Install-Package Microsoft.EntityFrameworkCore.Design

额外注意点

  • 确保你的DEMOWTSSPortalContext类继承自DbContext,并且如果有自定义构造函数,要接受DbContextOptions<DEMOWTSSPortalContext>参数,这样依赖注入才能正确实例化它:
public class DEMOWTSSPortalContext : DbContext
{
    public DEMOWTSSPortalContext(DbContextOptions<DEMOWTSSPortalContext> options) : base(options)
    {
    }

    // 你的DbSet定义...
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 08:59:05