Kimlik 2.0.0 biz tip IdentityUserRoles ile ApplicationUser Roller navigasyon özelliği vardır ve biz Kullanıcılara aynı tip IdentityUserRoles buradaApplicationUser ve ApplicationRole navigasyon özellikleri
o
olduğu ile IdentityRole navigasyon özelliği vardır i context.Users boyunca yineleme zamannamespace Microsoft.AspNet.Identity.EntityFramework
{
// Summary:
// EntityType that represents a user belonging to a role
//
// Type parameters:
// TKey:
public class IdentityUserRole<TKey>
{
public IdentityUserRole();
// Summary:
// RoleId for the role
public virtual TKey RoleId { get; set; }
//
// Summary:
// UserId for the user that is in the role
public virtual TKey UserId { get; set; }
}
}
öylesine i standardını birçok çoğa haritalama betw yapmak için bir yol yoktur, sadece almak
RolNo edebilirsiniz een ApplicationUser ve ApplicationRole? benim durum için bir çözüm buldum bu soru üzerine bazı işten sonra
:
ben bu
foreach (var user in ApplicationDbContextInstance.Users)
{
List<ApplicationRole> UserRoles = user.Roles.ToList();
/*
some logic ...
*/
}
GÜNCELLEME böyle bir şey yaptığını yapabilmek istiyor. belki de onun kadar zarif değil, fakat benim durumumda IdentityUserRole'u ek gezinme özellikleriyle genişletmek zorundayım.
Genişletilmiş IdentityUserRole ApplicationUserRole'a sahip olmak ve tüm çözümlerde uygun değişiklikler yapmak. burada benim yeni IdentityUserRole geçerli:
public class ApplicationUserRole : IdentityUserRole<string>
{
public virtual ApplicationUser User { get; set; }
public virtual ApplicationRole Role { get; set; }
public virtual ICollection<GeoSectorForUser> GeoSectors { get; set; }
}
ve şimdi ben böyle belli rolünde tüm kullanıcıları alabilirsiniz: AplicationUserRole o çözüm çalışılır böylece ek navigasyon özelliklerini saklamak için gerekli olan
foreach(ApplicationRole role in db.Roles){
List<ApplicationUser> users = role.Users.Select(s => s.User).ToList();
}
benim durumumda
benim için. ama hala
'IdentityUserRole' olan ara nesnesidir: Bir kullanıcı için
Role
nesneler topluluğu almak için, (böylece% 100 çalışmayabilir kafamın üst kapalı bu yazarak)RoleManager
sınıfını kullanmalıdır zaten çoktan çoğa ilişkiyi sağlamak. Yani 'IdentityUser' <->' IdentityUserRole' <-> 'IdentityRole ' – DavidGGüncellemeniz benim için çalışmaz. Yeni bir Göç oluşturmaya çalışırken İstisnalar alıyorum. – Thomas