Объекты:
Код: Выделить всё
public class AppUser : IdentityUser
{
public string Name { get; set; }
public List
Photos { get; set; }
public List UserRoles { get; set; }
}
public class AppRole : IdentityRole
{
public ICollection UserRoles { get; set; }
}
public class AppUserRole : IdentityUserRole
{
public AppUser User { get; set; }
public AppRole Role { get; set; }
}
Код: Выделить всё
builder.Entity(b =>
{
b.HasKey(e => e.Id);
b.HasMany(ur => ur.UserRoles)
.WithOne(u => u.User)
.HasForeignKey(u => u.UserId)
.IsRequired();
});
builder.Entity(b =>
{
b.HasKey(e => e.Id);
b.HasMany(ur => ur.UserRoles)
.WithOne(u => u.Role)
.HasForeignKey(u => u.RoleId)
.IsRequired();
});
builder.Entity(b =>
{
b.HasOne(ur => ur.User)
.WithMany(u => u.UserRoles)
.HasForeignKey(ur => ur.UserId);
b.HasOne(ur => ur.Role)
.WithMany(r => r.UserRoles)
.HasForeignKey(ur => ur.RoleId);
});
Код: Выделить всё
var users = await _userManager.Users
.Include(u => u.Photos)
.Include(u => u.UserRoles)
.ThenInclude(ur => ur.Role)
.ToListAsync();
Примечание: .Include() для фотографий работает нормально, и это один из ко многим отношениям, но UserRoles не работает.
Подробнее здесь: https://stackoverflow.com/questions/787 ... lationship