public ActionResult Index()
   {
     var results = db.Employee
        .Where(d => d.JOBID == "Tester" 
            && d.JOBID == "Developer" 
            && d.Salary =="2000")
        .ToList();

     return View(results);
  }

Полученные результаты

НАИМЕНОВАНИЕ JOBID SALARY

  1. Джон Тестер 4000
  2. радость разработчика 2000
0
Harvey Masuluke 6 Май 2020 в 23:54

2 ответа

Лучший ответ

Если вы хотите применить выбор двух значений из одного столбца, вам лучше использовать оператор ИЛИ . В этом списке будет либо тестировщик, либо разработчик, чья зарплата составляет ровно 2000

public ActionResult Index()
   {
     var results = db.Employee
        .Where(d => 
                    (d.JOBID == "Tester" || d.JOBID == "Developer") && 
                    d.Salary =="2000")
        .ToList();

     return View(results);
  }
1
Issam 6 Май 2020 в 21:07

Если вы хотите использовать предложение Where для выбора из одного столбца на основе нескольких значений, сначала поместите искомые значения в список:

var jobIdList = new List<string>();

jobIdList.Add("Tester");
jobIdList.Add("Developer");

Теперь вы можете использовать предложение Contains для запроса любых результатов, которые имеют значение в этом списке.

 var results = db.Employee
    .Where(d => (jobIdList.Contains(d.JOBID) 
        && d.Salary =="2000"))
    .ToList();

Таким образом, ваш запрос всегда работает одинаково, но вы можете изменить полученные результаты, изменив значения в jobIdList. Хотите включить менеджеров? jobIdList.Add("Manager");, затем повторите запрос. Теперь вы хотите удалить разработчиков и вернуть только тестеров и менеджеров? jobIdList.Remove("Developer"), затем выполните запрос и получите новые результаты. Это делает ваш метод запроса более гибким. Теперь вы вернете любого сотрудника, у которого JOBID есть в списке И зарплата = 2000. (вы можете посмотреть на это значение зарплаты, жесткое кодирование, которое может быть не идеальным).

0
Nik P 6 Май 2020 в 21:46