ホームページ >データベース >mysql チュートリアル >.NET Core 2.1 ID ですべてのユーザーとその関連ロールを取得する方法は?

.NET Core 2.1 ID ですべてのユーザーとその関連ロールを取得する方法は?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-01 21:21:14420ブラウズ

How to Get All Users with Their Associated Roles in .NET Core 2.1 Identity?

.NET Core 2.1 ID で関連付けられたロールを持つすべてのユーザーを取得する

関連付けられたロールを含むユーザー情報の取得は、ユーザー管理タスクに不可欠です。 .NET Core 2.1 Identity には、ユーザー ロールを管理するための新しいアプローチがあり、この記事では、この目標を達成する方法について説明します。

IdentityUser の変更について

以前、IdentityUser には、保存するための Rolles プロパティが含まれていました。関連する役割データ。ただし、.NET Core では、このプロパティは削除されました。代わりに、戦略は新しいクラスと関係の導入を中心に展開します。

  • ApplicationUserRole: ApplicationUser と ApplicationRole を接続するリンク エンティティ。
  • ApplicationRole: を表すクラスrole.
  • ApplicationUser: ユーザーを表すクラスで、ApplicationUserRole を参照します。

ソリューションの実装

このソリューションを実装するには、次の手順に従います。これらの手順:

  1. UserRoles プロパティを持つ ApplicationUser クラス。
  2. ApplicationUserRole クラスと ApplicationRole クラスを作成します。
  3. 更新DBContext を処理します。新しいエンティティと関係。
  4. 更新されたエンティティ タイプを使用して、スタートアップID を構成します。

ロール データの積極的な読み込み

ユーザーのロール情報を積極的にロードするには、次を使用しますコード:

this.Users = userManager.Users.Include(u => u.UserRoles).ThenInclude(ur => ur.Role).ToList();

「不明な列」エラーの解決

「不明な列」に関連するエラーが発生した場合は、次のコードを に追加していることを確認してください。 ApplicationDbContextOnModelCreatingメソッド:

protected override void OnModelCreating(ModelBuilder builder)
{
    base.OnModelCreating(builder);

    // Define the relationships for ApplicationUserRole
    builder.Entity<ApplicationUserRole>(userRole =>
    {
        userRole.HasKey(ur => new { ur.UserId, ur.RoleId });
        ...
        // Additional relationship configuration goes here
    });
}

ASP.NET Core 2.2 Update

ASP.NET Core 2.2 以降では、IdentityUserRole の更新方法に本質的な違いがあります。と定義されています。コンパイル エラーを避けるために、IdentityUserRole ではなく IdentityUserRole を継承する必要があります。

以上が.NET Core 2.1 ID ですべてのユーザーとその関連ロールを取得する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。