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

EF Core 8.0.0-rc迁移报错:无法创建StockInfraContext实例

EF Core迁移报错排查:无法解析DbContextOptions服务

核心问题:服务注册时机错误

你的应用启动代码中,先调用builder.Build()创建WebApplication实例,之后才注册Stock相关服务。而builder.Build()会锁定服务容器,后续添加的服务不会被注入到容器中,导致EF Core无法找到DbContextOptions<StockInfraContext>的配置。

错误的启动顺序:

var builder = WebApplication.CreateBuilder(args);
var app = builder.Build(); // 此处已锁定服务容器

builder.Services.ExposeStockIoC(builder.Configuration); // 该行配置不会生效

正确的启动顺序(先完成所有服务注册,再构建应用):

var builder = WebApplication.CreateBuilder(args);

// 先注册所有依赖服务
builder.Services.ExposeStockIoC(builder.Configuration);

// 再构建WebApplication实例
var app = builder.Build();

// 后续添加中间件配置等逻辑
app.Run();

额外验证点

  • 确认appsettings.json中存在格式正确的PsqlConnection连接字符串:
    "ConnectionStrings": {
      "PsqlConnection": "Host=localhost;Database=StockDb;Username=postgres;Password=your_password"
    }
    
  • 执行迁移时,若StockInfraContext在类库项目中,需指定项目参数:
    dotnet ef migrations add InitialCreate --project Domains.Stock.Infra.Data --startup-project 你的Web应用项目名
    
  • 检查MigrationsAssembly配置:确认typeof(StockInfraContext).Assembly.FullName指向的程序集包含迁移文件,若迁移文件在Web项目中,需改为Web项目的程序集名称。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 09:56:12