2015-05-31 2 views
0

Я надеюсь, что один из вас, ребята, может помочь мне с этим вопросом: Учитывая метод, приведенный ниже, могу ли я сделать счет на сервере БД, а не извлекать все строк, а функция не должна запускать запрос для каждого имени поиска, она должна запускать ровно 1 оператор SQL для каждого вызова функции. enter image description hereLinq to Entities вычисляет количество строк без возвращающихся строк

+0

Обычно лучше ввести код, чтобы другие могли его скопировать. Чтобы форматировать текст как код, каждая строка должна начинаться с четырех пробелов. – PiotrWolkowski

ответ

4

Вы можете значительно упростить свой запрос, используя Contains, который будет переведен в пункт WHERE IN. Затем просто подсчитайте соответствующие строки.

public static int CountEmployeesByName(IEnumerable<string> namesToSearch) 
{ 
    using (var context = new ApplicationEntities()) 
    { 
      return context.employees 
         .Where(e => namesToSearch.Contains(e.name)) 
         .Count(); 
    } 
} 
+0

Прошу прощения, я забыл сказать: можете ли вы сделать это только с одной строкой изменения кода для первой части и одной строки кода для второй части вопроса? –

+0

Я не понимаю, почему существует ограничение. Это делает обе вещи - в основном превращает его в 'select count (*) от сотрудников, где имя в (....)' – tvanfosson

+0

. Это ограничение, к которому я был приложен, к сожалению. Я знаю, как ты себя чувствуешь, задался вопросом тот же вопрос. –

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