Код: Выделить всё
UserЯ написал раннюю версию запроса, и он частично работает и возвращает некоторые значения. Проблема в следующем:
- Я не могу выбрать направление сортировки, поскольку для этого требуется вызов OrderBy() или OrderByDescending() условно.
- для упорядочивания я не могу использовать свойства внутри дочерних объектов, так как это требует безусловного предоставления их прямо в запросе (мне нужно написать OrderBy(prop => EF.Property< object>(prop.User, sortBy))).
Код: Выделить всё
var query = _db.Event
.AsNoTracking()
.Include(e => e.User)
.Where(e => e.User.UserName.Contains(filterText)
|| e.EventCode.Contains(filterText))
.OrderBy(prop => EF.Property(prop, sortBy))
.Skip(page * itemsPerPage)
.Take(itemsPerPage)
.ProjectToType()
.ToListAsync(cancellationToken)
;
return result;
Код: Выделить всё
var query = _db.Event
.AsNoTracking()
.Include(e => e.User)
.Where(e => e.User.UserName.Contains(filterText)
|| e.EventCode.Contains(filterText))
.OrderBy(prop => EF.Property(prop, sortBy))
.Skip(page * itemsPerPage)
.Take(itemsPerPage)
;
var result = await query
.ProjectToType()
.ToListAsync(cancellationToken);
return result;
Код: Выделить всё
public class Event
{
[Key]
public int EventId { get; set; }
[Required]
[MaxLength(64)]
public string EventCode { get; set; }
public DateTime DateTime { get; set; }
[Required]
public int UserID { get; set; }
public User User { get; set; }
}
Подробнее здесь: https://stackoverflow.com/questions/791 ... -direction
Мобильная версия