在管理使用者及其角色時,擁有有效檢索兩者的機制至關重要。本文深入探討如何使用 Identity Framework 在 .NET Core 2.1 中完成此任務。
一種常見方法涉及修改 ApplicationUser 類別以包含 Roles 屬性。但是,.NET Core 不再支援此功能。嘗試使用此實作將導致在查詢中包含角色時出錯。
要解決此問題,需要自訂關係表。該表將連接 ApplicationUser 和 IdentityRole 表,使我們能夠檢索使用者及其關聯的角色。
以下實體定義此關係:
必須更新ApplicationDbContext 以處理這些實體及其關係:
public class ApplicationDbContext : IdentityDbContext<ApplicationUser, ApplicationRole, string> { protected override void OnModelCreating(ModelBuilder builder) { // Define the relationship between ApplicationUser and ApplicationUserRole builder.Entity<ApplicationUserRole>() .HasKey(ur => new { ur.UserId, ur.RoleId }); builder.Entity<ApplicationUserRole>() .HasOne(ur => ur.User) .WithMany(u => u.UserRoles) .HasForeignKey(ur => ur.UserId) .IsRequired(); builder.Entity<ApplicationUserRole>() .HasOne(ur => ur.Role) .WithMany(r => r.UserRoles) .HasForeignKey(ur => ur.RoleId) .IsRequired(); } }
public IActionResult OnGetAsync() { this.Users = userManager.Users .Include(u => u.UserRoles) .ThenInclude(ur => ur.Role) .ToList(); return Page(); }
以上是如何在.NET Core 2.1中有效地檢索使用者及其關聯角色?的詳細內容。更多資訊請關注PHP中文網其他相關文章!