Вы не можете добавлять условия в метод Include в ef core , поэтому для фильтрации полей, отображаемых в результатах, вам нужно select the whole after the where condition
.
Но поскольку вы хотите удалить некоторые поля в результате, то контент, возвращаемый запросом, не будет принят как тип User
(был изменен на a custom type
), вам нужно использовать var
для получения.
Вот демо:
var query = _context.Users
.Include(a => a.HobbyUsers)
.Where(h => h.HobbyUsers.Any(u => u.Hobby.HobbyId == hobbyID))
.Select(x => new
{
//here are Users class fields, you can change to what your class has.
Id = x.Id,
Name = x.Name,
HobbyUsers = x.HobbyUsers.Select(a => new
{
Id = a.HobbyId,
SkillLevel = a.SkillLevel
})
}).OrderBy(u => u.HobbyUsers.First().SkillLevel).ToList();