ASP.NET身份脚手架问题:未生成applicationdb类
解决Identity认证未自动生成
ApplicationDbContext类的问题 方法一:手动创建ApplicationDbContext类
- 在项目中新建类(建议放在
Data文件夹下),代码如下:
using Microsoft.AspNetCore.Identity.EntityFrameworkCore; using Microsoft.EntityFrameworkCore; namespace YourProjectName.Data { public class ApplicationDbContext : IdentityDbContext { public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options) : base(options) { } } }
- 在
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();
- 确保
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
相关产品推荐
相关产品推荐

