C# 在实体框架中,如何使用where子句在一列中包含不同的数据? 结果 姓名职务工资 约翰测试仪4000 joy Developer 2000

C# 在实体框架中,如何使用where子句在一列中包含不同的数据? 结果 姓名职务工资 约翰测试仪4000 joy Developer 2000,c#,asp.net,asp.net-mvc,C#,Asp.net,Asp.net Mvc,如果要从同一列中选择两个值,最好使用或运算符,这将列出其工资正好为2000英镑的测试人员或开发人员 public ActionResult Index() { var results = db.Employee .Where(d => d.JOBID == "Tester" && d.JOBID == "Developer" && d.Salary =="2000")

如果要从同一列中选择两个值,最好使用运算符,这将列出其工资正好为2000英镑的测试人员开发人员

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

     return View(results);
  }


如果要使用Where子句根据多个值从一列中进行选择,请首先将要查找的值放入列表中:

var jobIdList=new List();
jobIdList.Add(“测试员”);
jobIdList.Add(“开发者”);
现在,您可以使用
Contains
子句查询该列表中有值的任何结果

var results=db.Employee
.Where(d=>(jobIdList.Contains(d.JOBID)
&&d.薪金=“2000”))
.ToList();

这样,您的查询的工作方式始终相同,但您可以通过更改
jobidleist
中的值来更改得到的结果。想要包括经理吗<代码>作业列表。添加(“经理”),然后再次运行查询。现在,您想删除开发人员,只恢复测试人员和经理<代码>作业列表。删除(“开发人员”),然后运行查询并获得新结果。这使您的查询方法更加灵活。现在,您将返回JOBID位于列表中且工资=2000的任何员工。(您可能会看到该薪资值,硬编码可能并不理想。)

您是否打算使用
|
(或)而不是
&&
(和),因为
JOBID
不能等于多个值。
public ActionResult Index()
   {
     var results = db.Employee
        .Where(d => 
                    (d.JOBID == "Tester" || d.JOBID == "Developer") && 
                    d.Salary =="2000")
        .ToList();

     return View(results);
  }