在ASP.NET核心-6中,我试图为用户管理提取我所有的身份用户及其相关角色。
ApplicationUser
using Microsoft.AspNetCore.Identity;
namespace Core.Infrastructure.Identity
{
public class ApplicationUser : IdentityUser
{
public ICollection<ApplicationUserRole> UserRoles { get; set; }
}
}ApplicationUserRole
using Microsoft.AspNetCore.Identity;
namespace Core.Infrastructure.Identity
{
public class ApplicationUserRole : IdentityUserRole<string>
{
public virtual ApplicationUser User { get; set; }
public virtual ApplicationRole Role { get; set; }
}
}ApplicationRole
using Microsoft.AspNetCore.Identity;
namespace Core.Infrastructure.Identity
{
public class ApplicationRole : IdentityRole
{
public ICollection<ApplicationUserRole> UserRoles { get; set; }
}
}ApplicationUserConfigurations
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
namespace Core.Persistence.Configurations
{
public class ApplicationUserConfigurations : IEntityTypeConfiguration<ApplicationUser>
{
public void Configure(EntityTypeBuilder<ApplicationUser> builder)
{
builder.Property(u => u.IsActive).HasDefaultValue(true);
builder.Property(u => u.IsAdmin).HasDefaultValue(false);
builder.Property(u => u.IsPasswordChanged).HasDefaultValue(false);
builder.Property(u => u.IsDeleted).HasDefaultValue(false);
}
}
}ApplicationRoleConfigurations
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
namespace Core.Persistence.Configurations
{
public class ApplicationRoleConfigurations : IEntityTypeConfiguration<ApplicationRole>
{
public void Configure(EntityTypeBuilder<ApplicationRole> builder)
{
builder.HasIndex(r => r.Name).IsUnique();
builder.Property(r => r.IsActive).HasDefaultValue(true);
}
}
}ApplicationUserRoleConfigurations
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
public class ApplicationUserRoleConfigurations : IEntityTypeConfiguration<ApplicationUserRole<string>>
{
public void Configure(EntityTypeBuilder<ApplicationUserRole<string>> builder)
{
builder.HasKey(ur => new { ur.UserId, ur.RoleId });
builder.HasOne(ur => ur.Role)
.WithMany(r => r.UserRoles)
.HasForeignKey(ur => ur.RoleId)
.IsRequired();
builder.HasOne(ur => ur.User)
.WithMany(r => r.UserRoles)
.HasForeignKey(ur => ur.UserId)
.IsRequired();
}
}DBContext
public class ApplicationDbContext
: IdentityDbContext<ApplicationUser, ApplicationRole, string, IdentityUserClaim<string>,
ApplicationUserRole, IdentityUserLogin<string>,
IdentityRoleClaim<string>, IdentityUserToken<string>>
{
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
: base(options)
{
}
protected override void OnModelCreating(ModelBuilder builder)
{
builder.ApplyConfigurationsFromAssembly(typeof(ApplicationDbContext).Assembly);
base.OnModelCreating(builder);
// Customize ASP.NET Identity models and override defaults
// such as renaming ASP.NET Identity, changing key types etc.
builder.ApplyConfiguration(new ApplicationUserConfigurations());
builder.ApplyConfiguration(new ApplicationUserRoleConfigurations());
builder.ApplyConfiguration(new IdentityRoleClaimConfigurations());
builder.ApplyConfiguration(new IdentityUserClaimConfigurations());
builder.ApplyConfiguration(new IdentityUserLoginConfigurations());
builder.ApplyConfiguration(new IdentityUserClaimConfigurations());
builder.ApplyConfiguration(new ApplicationRoleConfigurations());
}
}我对ApplicationUserRoleConfigurations有意见
我发现了一个错误:
无法找到类型或命名空间名称‘
’(您是缺少使用指令还是程序集引用?)
然后,在ApplicationUserRoleConfigurations中突出显示
我怎么才能解决这个问题?
谢谢
发布于 2022-07-31 21:25:38
正如错误所述,您是否缺少了一个使用指令?如果您认为您不是-然后通过显示文件的名称空间,特别是ApplicationRole.cs和ApplicationUserRoleConfigurations.cs来证明。很可能它们在不同的名称空间中!
发布于 2022-07-31 23:05:01
将Core.Infrastructure.Identity的使用添加到类文件中
using Core.Infrastructure.Identity;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
public class ApplicationUserRoleConfigurations : IEntityTypeConfiguration<ApplicationUserRole<string>>
{或者把它放在同一个名称空间中。
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
namespace Core.Infrastructure.Identity
{
public class ApplicationUserRoleConfigurations : IEntityTypeConfiguration<ApplicationUserRole<string>>
{发布于 2022-07-31 23:01:46
试着使用:
public class ApplicationUserRoleConfigurations : IEntityTypeConfiguration<ApplicationUserRole>https://stackoverflow.com/questions/73186944
复制相似问题