I am developing a login system with ASP.NET Core Identity. I have two identities: Client and Member. When I tried to register a Member user it produces an InvalidOperationException.
ClientUser.cs
public class ClientUser : IdentityUser { [Required] [MaxLength(100)] public string FirstName { get; set; } = string.Empty; [Required] [MaxLength(100)] public string LastName { get; set; } = string.Empty; } MemberUser.cs
public class MemberUser : IdentityUser { [Required] [MaxLength(100)] public string MemberFirstName { get; set; } = string.Empty; [Required] [MaxLength(100)] public string MemberLastName { get; set; } = string.Empty; } ClientContext.cs
public class ClientContext : IdentityDbContext<ClientUser> { public ClientContext(DbContextOptions<ClientContext> options) : base(options) { } protected override void OnModelCreating(ModelBuilder builder) { base.OnModelCreating(builder); } } Program.cs
var builder = WebApplication.CreateBuilder(args); var connectionString = builder.Configuration.GetConnectionString("RazorPagesPizzaAuthConnection"); builder.Services.AddDbContext<ClientContext>(options => options.UseSqlServer(connectionString)); //builder.Services.AddDbContext<MemberContext>(options => // options.UseSqlServer(connectionString)); builder.Services.AddDefaultIdentity<ClientUser>(options => { options.SignIn.RequireConfirmedAccount = true; options.Password.RequireNonAlphanumeric = false; options.Password.RequireLowercase = false; options.Password.RequireUppercase = false; }).AddEntityFrameworkStores<ClientContext>(); builder.Services.AddIdentityCore<MemberUser>() .AddRoles<IdentityRole>() .AddClaimsPrincipalFactory<UserClaimsPrincipalFactory<MemberUser, IdentityRole>>() .AddEntityFrameworkStores<ClientContext>() .AddDefaultTokenProviders() .AddDefaultUI(); // Add services to the container. builder.Services.AddRazorPages(); builder.Services.AddTransient<IEmailSender, EmailSender>(); var app = builder.Build(); // Configure the HTTP request pipeline. if (!app.Environment.IsDevelopment()) { app.UseExceptionHandler("/Error"); // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts. app.UseHsts(); } app.UseHttpsRedirection(); app.UseStaticFiles(); app.UseRouting(); app.UseAuthentication(); app.UseAuthorization(); app.MapRazorPages(); app.Run(); Error:
InvalidOperationException: Cannot create a DbSet for 'MemberUser' because this type is not included in the model for the context.