Возвращение IQueryable
из метода полезно только в том случае, если вы хотите добавить что-либо к запросу (фильтр, проекция, объединение ...) до его выполнения. Но поскольку ваш метод перечисляет результаты с foreach
, запрос уже был выполнен, когда вы его возвращаете, поэтому уже слишком поздно что-либо добавлять к нему ...
Возможно, ваш метод должен вернуть IEnumerable<Employee>
вместо:
public IEnumerable<Employee> GetEmployeesByFollowup()
{
var results = this.ObjectContext.SearchEmployeeFollowup().ToList();
foreach (Employee p in results)
{
p.DepaermentReference.Load();
}
return results;
}
Кстати, EF 4.0 обрабатывает отложенную загрузку связанных сущностей, поэтому обычно вам не нужно вызывать Load
явно