在 .Net Core 3.1 身份中具有角色的用户列表
User List with Role in .Net Core 3.1 Identity
我能否从 Identity 获取 .Net Core 3.1 中具有相关角色的所有用户的列表?我还没有找到任何有效的解决方案。
您需要自定义身份模型并添加导航属性。
public class ApplicationUser : IdentityUser
{
public virtual ICollection<ApplicationUserRole> UserRoles { get; set; }
}
然后添加需要的配置。
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<ApplicationUser>(b =>
{
// Each User can have many entries in the UserRole join table
b.HasMany(e => e.UserRoles)
.WithOne(e => e.User)
.HasForeignKey(ur => ur.UserId)
.IsRequired();
});
modelBuilder.Entity<ApplicationRole>(b =>
{
// Each Role can have many entries in the UserRole join table
b.HasMany(e => e.UserRoles)
.WithOne(e => e.Role)
.HasForeignKey(ur => ur.RoleId)
.IsRequired();
});
}
然后您可以使用联接来查询具有角色的用户。有关添加导航属性的更多信息,请参见 here
我能否从 Identity 获取 .Net Core 3.1 中具有相关角色的所有用户的列表?我还没有找到任何有效的解决方案。
您需要自定义身份模型并添加导航属性。
public class ApplicationUser : IdentityUser
{
public virtual ICollection<ApplicationUserRole> UserRoles { get; set; }
}
然后添加需要的配置。
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<ApplicationUser>(b =>
{
// Each User can have many entries in the UserRole join table
b.HasMany(e => e.UserRoles)
.WithOne(e => e.User)
.HasForeignKey(ur => ur.UserId)
.IsRequired();
});
modelBuilder.Entity<ApplicationRole>(b =>
{
// Each Role can have many entries in the UserRole join table
b.HasMany(e => e.UserRoles)
.WithOne(e => e.Role)
.HasForeignKey(ur => ur.RoleId)
.IsRequired();
});
}
然后您可以使用联接来查询具有角色的用户。有关添加导航属性的更多信息,请参见 here