Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mendapatkan Kembali Pengguna dan Peranan Berkaitan Mereka dengan Cekap dalam .NET Core 2.1?

Bagaimana untuk Mendapatkan Kembali Pengguna dan Peranan Berkaitan Mereka dengan Cekap dalam .NET Core 2.1?

Linda Hamilton
Lepaskan: 2024-12-09 19:47:24
asal
773 orang telah melayarinya

How to Efficiently Retrieve Users and Their Associated Roles in .NET Core 2.1?

Mengambil semula Pengguna dan Peranan Berkaitan dalam .NET Core 2.1

Dalam mengurus pengguna dan peranan mereka, adalah penting untuk mempunyai mekanisme untuk mendapatkan kedua-duanya dengan cekap. Artikel ini membincangkan cara untuk menyelesaikan tugas ini dalam .NET Core 2.1 menggunakan Rangka Kerja Identiti.

Percubaan dan Isu Awal

Satu pendekatan biasa melibatkan pengubahsuaian kelas ApplicationUser untuk memasukkan sifat Peranan. Walau bagaimanapun, ini tidak lagi disokong dalam Teras .NET. Percubaan untuk menggunakan pelaksanaan ini akan mengakibatkan ralat apabila cuba memasukkan peranan dalam pertanyaan.

Melaksanakan Jadual Perhubungan Tersuai

Untuk mengatasi isu ini, jadual perhubungan tersuai diperlukan. Jadual ini akan menyambungkan jadual ApplicationUser dan IdentityRole, membolehkan kami mendapatkan semula pengguna dan peranan mereka yang berkaitan.

Entiti berikut mentakrifkan perhubungan ini:

  • ApplicationUser: Mewakili pengguna aplikasi.
  • ApplicationUserRole: Memautkan pengguna ke peranan.
  • Peranan Aplikasi: Mewakili peranan aplikasi.

Mengkonfigurasi DbContext

ApplicationDbContext mesti dikemas kini untuk mengendalikan entiti ini dan hubungannya:

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();
    }
}
Salin selepas log masuk

Bersemangat Memuat dalam Pisau Cukur Halaman

Untuk mendapatkan semula pengguna dan peranan mereka yang berkaitan, kod berikut ditambahkan pada Halaman Pisau Cukur:

public IActionResult OnGetAsync()
{
    this.Users = userManager.Users
        .Include(u => u.UserRoles)
        .ThenInclude(ur => ur.Role)
        .ToList();
    return Page();
}
Salin selepas log masuk

Bahagian ".Include(u => u.UserRoles)" dengan penuh semangat memuatkan UserRole untuk setiap pengguna. Bahagian ".ThenInclude(ur => ur.Role)" terus bersemangat memuatkan Peranan untuk setiap UserRole. Ini memastikan kedua-dua pengguna dan peranan mereka tersedia dalam model.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Kembali Pengguna dan Peranan Berkaitan Mereka dengan Cekap dalam .NET Core 2.1?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan