2015-05-15 4 views
1
public List<Employee> GetEmployees(){ 
    var employee = new ApplicationDBContext().Employee; 

    return employee.ToList(); 
} 

//somewhere in other part of code. 
//Use GetEmployees. 
var employees = GetEmployees(); 
var importantEmployees = employees.Where(e => e.IsImportant == true); 

С точки зрения производительности, этот метод возможен? Есть ли решение, чтобы сделать его быстро? Спасибо!Entity framework. ToList() медленный? (Запрос все)

ответ

7

Как только GetEmployees() выполняет ToList(), вы извлекаете все записи из базы данных, а не только «важные» из них. К тому моменту, когда вы выполните предложение Where позже, уже слишком поздно.

Создайте еще один способ, при котором вы фильтруете Where перед вызовом ToList().

public List<Employee> GetImportantEmployees() 
{ 
    var employee = new ApplicationDBContext().Employee; 

    return employee.Where(e => e.IsImportant).ToList(); 
} 

Кроме этого, я не уверен, что еще вы можете сделать, чтобы ускорить выполнение вашего кода на C#. Применяйте больше фильтров, если вам нужно только подмножество «важных» сотрудников (также перед вызовом ToList()).

+0

Спасибо за это, это помогает! – janmvtrinidad

Смежные вопросы