如何在实体框架中使用where子句,在一列中使用不同的数据?

问题描述 投票:0回答:1
public ActionResult Index()
   {
     var results = db.Employee
        .Where(d => d.JOBID == "Tester" 
            && d.JOBID == "Developer" 
            && d.Salary =="2000")
        .ToList();

     return View(results);
  }

结果

姓名 姓名 姓名 姓名: :: :工资工资工资工资

  1. John Tester 4000
  2. joy Developer 2000
c# asp.net asp.net-mvc
1个回答
1
投票

如果你想从同一列中选择两个值,你最好使用以下方法 操作员,这将列出 测试员开发商 他们的工资正好是2000元

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

     return View(results);
  }

0
投票

如果你想使用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。(你可以看看这个工资值,硬编码可能不是很理想。)

© www.soinside.com 2019 - 2024. All rights reserved.