У меня есть 3 таблицы: User, Roles и UserRoles, и у меня есть список идентификаторов ролей { 2, 3, 4 }
. Я хочу вернуть всех пользователей с идентификатором 2, 3 или 4.
Модель:
public partial class User
{
public int Id { get; set; }
public virtual ICollection<UserRoles> UserRoles { get; set; }
}
public partial class Roles
{
public int Id { get; set; }
}
public partial class UserRoles
{
public int UserId { get; set; }
public int RoleId { get; set; }
public virtual Users Users { get; set; }
public virtual Roles Roles { get; set; }
}
И код у меня есть:
int[] RoleIds = { 2, 3, 4 };
return await _dbContext.Users
.Where(u => u.UserRoles.Any(x=> RoleIds.Contains(x.RoleId)));
Не знаю почему, но мой результат содержит записи с roleId == 1.
обновление
Я знаю почему .. Мой код правильный. Что-то не так в классе Mapper.
Я использовал что-то вроде .FirstOrDefault (). RoleId. поэтому он возвращает только первые данные, и пользователь может иметь несколько ролей! Спасибо, ребята