'daki rol adlarıyla kullanıcıları nasıl listeleyebilirim? ASP.NET MVC 5 web sitesinin varsayılan proje şablonuna sahibim ve tüm kullanıcıların rol adları (ID değil) ile listelenmeye çalışıyorum.ASP.NET MVC 5
sorgusu:
db.Users.Include(u => u.Roles).ToList()
Sonra böyle bir şeyle rol isimleri yazdırmak istiyorum:
@string.Join(", ", user.Roles.Select(r => r.RoleId))
sorun olduğunu nerede Name
ve sadece RoleId
değil, Rol sınıfı ulaşabilir diğer özellikler saklanır.
Tüm rolleri almak için başka bir seçim yapabilir ve bunu bir arama olarak kullanabilirim. Veya doğrudan sorguya bir katılma yazabilirsiniz? Tabi ki, kullanıcıları ve rolleri bir araya getiren IdentityUserRole
varlıkları ile tabloya erişimim olmadığından nasıl emin değilim.
sorunun kökü sadece RoleId
ve UserId
içeren IdentityUserRole
(değil Role
) Roller koleksiyonu olduğu gerçeğini gibi görünüyor.
public class IdentityUserRole<TKey> {
public virtual TKey RoleId { get; set; }
public virtual TKey UserId { get; set; }
}
Bir EF N-to-N ilişkisi yapmak istiyorsanız onlar
Roles
doğrudan koleksiyonu koymak ve daha sonra
OnModelCreating
geçersiz kılmak ve ilişkileri belirtmek gerektiğini düşündüm. Bu yaklaşım, nesnelerin birinden diğerine göz atmasını zorlaştırıyor gibi görünüyor.
Neden ek varlık olarak IdentityUserRole
eklemeye karar verdiler? İlişkilere fazladan veri ekleyebilmek için? Kullanıcılardan rollere geçiş yapamamanın maliyeti ne kadar?
Kullanıcıdan rollere kolayca gidebilir, çok sayıda ilişki olduğu için birleştirme tablosu var. Kimlik ekibinin sadece eğlence için bir çöp sistemi oluşturduğunu düşünmüyorum .... –
@ No1_Melman Sorunun bir örneğini de ekleyebilir misiniz (belki cevap olarak)? Teşekkürler. – NightElfik
Evet, bana bir dakika verin –