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

EF Core中实例化DBContext时出现异常,请求技术帮助

解决EF Core 2.1.0运行时找不到Microsoft.Extensions.DependencyInjection.Abstractions的问题

我之前也踩过这种「明明程序集就在引用路径里,但运行时死活找不到」的坑,给你几个针对性的排查和解决方向:

1. 检查并添加程序集绑定重定向

Web项目经常会因为依赖版本冲突导致CLR加载错误的程序集版本,你可以手动在Web.config里添加绑定重定向规则:

  • 打开项目根目录的Web.config,找到<runtime>节点(如果没有就新建一个),插入以下配置:
<runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
      <assemblyIdentity name="Microsoft.Extensions.DependencyInjection.Abstractions" 
                        publicKeyToken="adb9793829ddae60" 
                        culture="neutral" />
      <bindingRedirect oldVersion="0.0.0.0-2.1.0.0" 
                       newVersion="2.1.0.0" />
    </dependentAssembly>
  </assemblyBinding>
</runtime>
  • 保存后清理项目的bin和obj文件夹,重新生成解决方案,确保bin目录下的Microsoft.Extensions.DependencyInjection.Abstractions.dll版本是2.1.0.0。

2. 强制统一依赖版本

可能有其他第三方包偷偷引用了更低版本的Microsoft.Extensions.DependencyInjection.Abstractions,导致版本不一致:

  • 打开Package Manager Console,执行命令查看项目的所有依赖:
Get-Package -ProjectName 你的Web项目名称
  • 搜索输出里有没有版本低于2.1.0的Microsoft.Extensions.DependencyInjection.Abstractions,如果有,手动安装指定版本强制覆盖:
Install-Package Microsoft.Extensions.DependencyInjection.Abstractions -Version 2.1.0 -ProjectName 你的Web项目名称

3. 清理IIS/IIS Express的缓存

IIS的影子复制机制可能缓存了旧版本的程序集,导致运行时加载错误:

  • 完全退出IIS Express:右键任务栏的IIS Express图标,选择「退出」;
  • 手动删除项目的bin和obj文件夹;
  • 重启Visual Studio,重新生成并运行项目。

4. 检查DbContext的初始化方式

从你的调用栈看,RepoContext用了无参构造函数,EF Core 2.x更推荐依赖注入的方式初始化DbContext,无参构造可能会导致依赖加载异常:

  • 修改RepoContext的构造函数,改为接收DbContextOptions:
public class RepoContext : DbContext
{
    public RepoContext(DbContextOptions<RepoContext> options) : base(options)
    {
    }
}
  • 在项目的Startup类中配置DbContext的依赖注入:
services.AddDbContext<RepoContext>(options =>
    options.UseSqlServer(Configuration.GetConnectionString("你的数据库连接字符串")));
  • 确保业务层的AccountBLL是通过构造函数注入获取RepoContext,而不是手动new RepoContext()。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:55:43