Рефакторинг обработки IEnumerable и IQueryable (C#)
Имеются два объекта с типами IEnumerable и IQueryable
Один используется для обработки перечислений внутри памяти приложения, другой для отправки запросов к БД
Добавляются два метода фильтрации (по одному для каждого типа)
private IQueryable<Employees> CreateEmployeeQuery(IQueryable<Employees> query, EmployeeFilter employeeFilter)
{
var query = query.Where(w => employeeFilter.EmployeeId == null || w.Id == employeeFilter.EmployeeId);
return query;
}
private IEnumerable<Employees> CreateEmployeeQuery(IEnumerable<Employees> employees, EmployeeFilter employeeFilter)
{
var employees = employees.Where(w => employeeFilter.EmployeeId == null || w.Id == employeeFilter.EmployeeId);
return employees;
}
Хотелось бы уточнить, как будет влиять на производительность и есть ли какие-то подводные камни при использовании подхода: выделить один метод и делать преобразования .AsQueryable() или .AsEnumerable()
И какой метод в таком случае практичнее оставить? Или какие доводы есть в пользу каждого из методов?
Источник: Stack Overflow на русском