我有一个查询在循环中运行缓慢(循环大约100次需要5-10秒),但是我不知道为什么。查询只是针对一个对象列表...非常感谢您的帮助!
基本上,我正在查询被分配给特定经理的计划。它必须来自指定班次的周OR下周的前两天OR上周的最后两天。
我尝试过之前计算.AddDays,但没有帮助。当我运行性能测试时,它突出了下面的"from"语句。
基本上,我正在查询被分配给特定经理的计划。它必须来自指定班次的周OR下周的前两天OR上周的最后两天。
我尝试过之前计算.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();