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

ASP.NET Core 7 MVC添加仓储作用域服务报错,如何解决?

问题修复方案

根据你提供的代码和依赖注入失败的错误信息,可按以下步骤排查修复:

1. 确认项目引用关系

确保BulkyWeb项目已添加对Bulky.DataAccess项目的引用。若缺少该引用,IDE无法识别仓储相关类,直接导致服务注册失败。

2. 验证连接字符串配置

检查appsettings.json中的DefaultConnection连接字符串是否正确配置,示例格式如下:

{
  "ConnectionStrings": {
    "DefaultConnection": "Server=你的数据库服务器地址;Database=BulkyDb;Trusted_Connection=True;TrustServerCertificate=True"
  }
}

连接字符串缺失或格式错误会导致ApplicationDbContext无法正常注册,进而影响仓储类的依赖注入。

3. 补充通用仓储的服务注册

虽然你已注册ICategoryRepository,但可同时注册通用仓储接口与实现类,规避基类依赖的潜在问题。修改Program.cs中的服务注册代码:

// 先注册通用仓储
builder.Services.AddScoped(typeof(IRepository<>), typeof(Repository<>));
// 再注册分类仓储
builder.Services.AddScoped<ICategoryRepository, CategoryRepository>();

4. 清理重建解决方案

编译缓存可能导致依赖识别异常,执行以下操作:

  • 在Visual Studio中点击「生成」→「清理解决方案」
  • 再点击「生成」→「重建解决方案」

5. 核对构造函数依赖

确认CategoryRepository的构造函数正确注入ApplicationDbContext,你的现有代码已符合要求,可再次核对:

public CategoryRepository(ApplicationDbContext db) : base(db)
{
    _db = db;
}

完成以上步骤后,重新运行项目即可解决服务注册问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 13:07:56