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

ASP.NET身份脚手架问题:未生成applicationdb类

解决Identity认证未自动生成ApplicationDbContext类的问题

方法一:手动创建ApplicationDbContext类

  1. 在项目中新建类(建议放在Data文件夹下),代码如下:
using Microsoft.AspNetCore.Identity.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore;

namespace YourProjectName.Data
{
    public class ApplicationDbContext : IdentityDbContext
    {
        public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
            : base(options)
        {
        }
    }
}
  1. 在Program.cs中注册DbContext与Identity服务:
var builder = WebApplication.CreateBuilder(args);

// 注册DbContext,替换为你的连接字符串名称
builder.Services.AddDbContext<ApplicationDbContext>(options =>
    options.UseSqlServer(builder.Configuration.GetConnectionString("DefaultConnection")));

// 注册Identity服务
builder.Services.AddDefaultIdentity<IdentityUser>(options => options.SignIn.RequireConfirmedAccount = true)
    .AddEntityFrameworkStores<ApplicationDbContext>();

// 其他中间件配置...

var app = builder.Build();

// 中间件调用逻辑...

app.Run();
  1. 确保appsettings.json中配置了对应连接字符串:
{
  "ConnectionStrings": {
    "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=YourDatabaseName;Trusted_Connection=True;MultipleActiveResultSets=true"
  }
}

方法二:用Scaffold命令自动生成

如果需要工具自动生成完整的Identity相关文件(含ApplicationDbContext),可执行以下命令:

Package Manager Console执行:

Scaffold-DbContext "Server=(localdb)\mssqllocaldb;Database=YourDatabaseName;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Data

.NET CLI执行:

dotnet ef dbcontext scaffold "Server=(localdb)\mssqllocaldb;Database=YourDatabaseName;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -o Data

执行前需确保已安装NuGet包:Microsoft.EntityFrameworkCore.Tools、Microsoft.AspNetCore.Identity.EntityFrameworkCore、Microsoft.EntityFrameworkCore.SqlServer。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 22:32:39