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

.NET Core MVC脚手架(Scaffolding)无法识别DB First生成的数据库上下文

.NET Core MVC DB First模式下Identity基架无法识别已有上下文的解决方案

核心原因

Identity基架工具仅能识别满足以下3个条件的数据库上下文,DB First默认生成的EntityDBContext不满足要求所以无法被识别:

  • 必须继承IdentityDbContext泛型基类(而非默认的DbContext)
  • 必须包含接收DbContextOptions<EntityDBContext>参数的公开构造函数
  • 必须已在项目的依赖注入容器中完成注册

具体修复步骤

步骤1:修正数据库上下文继承关系

  1. 为项目安装Microsoft.AspNetCore.Identity.EntityFrameworkCore NuGet包
  2. 修改Data/EntityDBContext.cs的继承逻辑:
// 引用必要命名空间
using Microsoft.AspNetCore.Identity.EntityFrameworkCore;
using Microsoft.AspNetCore.Identity;
using Microsoft.EntityFrameworkCore;

// 把原来继承DbContext改为继承IdentityDbContext,泛型参数可替换为自定义的用户类
public partial class EntityDBContext : IdentityDbContext<IdentityUser>
{
    // 保留Scaffold生成的其他代码,新增适配基架的构造函数
    public EntityDBContext(DbContextOptions<EntityDBContext> options) : base(options)
    {
    }

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        // 必须调用基类的OnModelCreating,完成Identity表的默认配置
        base.OnModelCreating(modelBuilder);
        // 保留Scaffold生成的其他表配置逻辑
    }
}

注意:如果你的数据库中Identity表主键为非默认的string类型,或自定义了用户/角色实体,需要对应调整IdentityDbContext的泛型参数,和数据库中表的字段规则匹配。

步骤2:在Program.cs中注册上下文与Identity服务

在项目启动配置文件中添加以下注册逻辑:

var builder = WebApplication.CreateBuilder(args);

// 注册你的数据库上下文
builder.Services.AddDbContext<EntityDBContext>(options =>
    options.UseSqlServer(builder.Configuration.GetConnectionString("DefaultConnection")));

// 注册Identity服务,指定使用你的上下文作为存储
builder.Services.AddDefaultIdentity<IdentityUser>(options => options.SignIn.RequireConfirmedAccount = true)
    .AddEntityFrameworkStores<EntityDBContext>();

// 保留你原有的其他服务注册逻辑
// ...

var app = builder.Build();

// 中间件配置部分要确保按顺序加了Identity相关中间件
app.UseAuthentication();
app.UseAuthorization();

// 保留原有中间件配置
// ...
app.Run();

注意要在appsettings.json中添加对应的连接字符串配置,键名和你读取的保持一致即可。

步骤3:重新编译项目后重试基架操作

完成以上修改后先对项目执行全量编译,再重新进入「新建基架项 > Identity」流程,就能正常识别到EntityDBContext了。


内容的提问来源于stack exchange,提问作者Iago Marcello de Brito

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 11:06:05