6
我有一個查詢運行緩慢(在約100循環中需要5-10秒),並不知道爲什麼。它只是查詢對象列表...您的幫助非常感謝!緩慢的LINQ查詢
我基本上是查詢已分配給特定經理的時間表。它必須來自指定的週轉周或下週的前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();
首先,謝謝喬恩!之前我有過短路但沒有注意到差異。使用「加入」而不是「在哪裏」雖然工作!我從來不知道LINQ對待2的方式不同。 其次 - 哇!我覺得我剛剛得到名人的幫助! :)我從來沒有讀過你的書,但看過很多次。不過,你可以確定我現在會收到一份副本。 :) p.s.如果您曾經在尋找一名開發人員,請告訴我!即合着你的下一本書!哈哈 – jon 2011-01-19 14:55:39