Каков наилучший способ написать запрос производительности. например я могу написать запрос, чтобы получить всех сотрудников на конкретную фамилию, как следует
ObjectQuery<Employee> queryEmp =
context.CreateQuery<Employee>(
"Select value e from Employees AS e Where e.LastName = @lastName",
new ObjectParameter("lastName", typeof(String)) { Value = "Farooqi" });
ObjectResult<Employee> results = query.Execute(MergeOption.AppendOnly);
OR
var v = from e in context.Employees where e.LastName == "Farooqi" select e;
OR
context.Employees.Where(e => e.LastName == "Farooqi");
OR
context.Employees.Where("LastName = @lastName", new ObjectParameter("lastName", typeof(String)) { Value = "Farooqi" });
Мой вопрос заключается в том, какой метод запроса лучше.
Что меня смущает, так это то, что я думаю (но не уверен), что при использовании последних трех методов, отличных от первого, будут извлечены все записи сотрудника из базы данных, а затем путем перечисления всех записей, которые будут восстановлены, которые удовлетворяют указанному условию where, поэтому я думаю, что последние три способа займут больше времени, чем первый, поэтому я использовал только первый.
Но что является лучшим в действительности, я не знаю.
Все ли методы выбирают только записи из базы данных, которые удовлетворяют условию были, или выбирают все записи из базы данных и затем перечисляют их, чтобы вернуть отфильтрованные записи в конце приложения?