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

ASP.NET Core MVC脚手架创建控制器时DbContext激活失败问题求助

解决方案:无法解析MyDbContext服务的问题

这个错误的核心原因是你的MyDbContext没有注册到ASP.NET Core的依赖注入(DI)容器中,脚手架生成控制器时需要从DI容器获取DbContext实例,因此抛出该异常。以下是具体解决步骤:

  • 注册DbContext到DI容器
    打开项目的Program.cs(.NET 6及以上版本)或者Startup.cs(.NET 5及更早版本),添加DbContext的注册代码:

    // .NET 6+ 示例
    builder.Services.AddDbContext<MyDbContext>(options =>
        options.UseSqlServer(builder.Configuration.GetConnectionString("DefaultConnection")));
    

    同时确保appsettings.json中配置了有效的连接字符串:

    "ConnectionStrings": {
      "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=MyWebAppDb;Trusted_Connection=True;MultipleActiveResultSets=true"
    }
    
  • 验证MyDbContext的构造函数
    你的MyDbContext必须包含一个接收DbContextOptions<MyDbContext>参数的构造函数,不能仅保留无参构造函数:

    public class MyDbContext : DbContext
    {
        public MyDbContext(DbContextOptions<MyDbContext> options) : base(options)
        {
        }
    
        // 这里定义你的DbSet<实体类>
        public DbSet<YourEntity> YourEntities { get; set; }
    }
    
  • 清理项目并重建
    执行以下命令清理缓存并重新构建项目:

    dotnet clean
    dotnet build
    

    也可以重启你的IDE(Visual Studio/Rider),避免IDE缓存导致配置未生效。

  • 重新运行脚手架工具
    再次尝试生成控制器时,确保在脚手架选项中选择了正确的MyDbContext,并确认连接字符串配置无误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 23:34:57