У меня есть запрос, который выполняется медленно (в цикле из 100 требуется 5-10 секунд), и я не знаю почему. Это просто запрос к Списку объектов ... Ваша помощь очень ценится!
Я в основном запрашиваю расписания, которые были назначены конкретным менеджерам. Это должно быть из указанной Сменной недели ИЛИ первых 2 дней следующей недели ИЛИ последних 2 дней предыдущей недели.
Я попытался вычислить. AddDays раньше, но это не помогло. Когда я запускал тест производительности, он выделил оператор «from» ниже.
List<Schedule> _schedule = Schedule.GetAll();
List<Shift> _shifts = Shift.GetAll();
// Then later...
List<Schedule> filteredSchedule = (from sch in _schedule
from s in _shifts
where
**sch.ShiftID == s.ShiftID
& (sch.ManagerID == 1 | sch.ManagerID == 2 | sch.ManagerID == 3)
& ((s.ScheduleWeek == shift.ScheduleWeek)
| (s.ScheduleWeek == shift.ScheduleWeek.AddDays(7)
& (s.DayOfWeek == 1 | s.Code == 2))
| (sch.ScheduleWeek == shift.ScheduleWeek.AddDays(-7)
& (s.DayOfWeek == 5 | s.Code == 6)))**
select sch)
.OrderBy(sch => sch.ScheduleWeek)
.ThenBy(sch => sch.DayOfWeek)
.ToList();