Я не уверен, какой подход рекомендуется для того, с чем я сталкиваюсь прямо сейчас.В основном, когда я загружаю свою страницу Razor, я возвращаю список пользователей из базы данных, которые я позже хочу заказать по цене или отфильтровать по определенным параметрам и т. Д. В настоящее время данные загружаются из базы данных в List<MyEntity>
.
Я пытаюсь выяснить, какой подход лучше и почему:
Выполнить запрос к базе данных для каждой сортировки / фильтра, который кажется большим потенциаломзапросы к базе данных.
Выполните сортировку и фильтрацию списка, который я изначально заполнил при получении модели.например.создайте метод, который принимает List<MyEntity>
и упорядочивает его следующим образом:
public List<MyEntity> OrderMyEntitiesByPriceAsc(List<PetGuardian>
toOrder)
{
return toOrder.OrderBy(g => g.Price).ToList();
}
и при выборе параметров упорядочения и отправке формы этот метод выполняется.
В моей модели страницы Razor я загружаю все свои объекты следующим образом:
Модель страницы Razor:
public async Task OnGet()
{
MyEntities = await _myEntityRepository.GetAllAsync();
}
Хранилище:
public IQueryable<T> GetAll()
{
return _dbContext.Set<T>().AsQueryable();
}
public async Task<List<T>> GetAllAsync()
{
return await GetAll().ToListAsync();
}
Опция2 кажется, что это избавит базу данных от лишних запросов, но я не уверен, является ли асинхронная реализация упорядочения правильной и хорошей практикой.Оба подхода сделают свою работу, мне просто интересно, что бы вы использовали и почему.
public Task<List<MyEntity>> OrderMyEntitiesPriceAsc(List<MyEntity> toSort)
{
return toSort.AsQueryable().OrderBy(g => g.Price).ToListAsync();
}