c# - linq 多字段搜索
问题描述
我有 EF Employee 表,其中包含 EmpNo、FirstName、LastName、Email 字段。并创建 LINQ 来搜索所有列并返回现有记录。如果一个或多个字段为空或为空,则根据现有数据返回结果。我写了代码:
public static int Search(EmployeeDt emp)
{
using (EF.Model1 context = new EF.Model1)
{
List<string> employee = context.Employees.Where(a => (a.EmpNo == null || a.EmpNo == emp.EmpNo)
&& (b => (b.FirstName == null || b.FirstName == emp.FirstName)
&& (c => (c.LastName == null || c.LastName == emp.LastName)).ToList();
return result;
}
}
但是我尝试编写的代码不正确。如何为我的案例编写 LINQ?
谢谢。
解决方案
您不需要a=>
在第二种情况下重用并emp.FirstName
与 null 不a
变量进行比较,将您的代码更改为
List<string> employee = context.Employees.Where(a => (emp.FirstName == null || a.FirstName == emp.FirstName)
&& (emp.LastName == null || a.LastName == emp.LastName)
&& (emp.EmpNo == null || a.EmpNo == emp.EmpNo)).ToList()
推荐阅读
- c# - 如何将 BigInteger 与小数相乘?
- microsoft-graph-api - 尽管有正确正文的 201 消息,但未创建订阅
- read-eval-print-loop - 播放框架交互式控制台 - 具有 DI 的访问类
- ios - 以编程方式创建不是 rootViewController 的 UINavigationController
- java - BeanCreationException 使用 tomcat 和 hibernate 获取本地数据
- emacs - 组织模式:图像在结果中损坏
- java - PL/SQL 中的嵌套类(对象类型)
- regex - 如何在 postgreSQL 中正确比较正则表达式?
- java - 使用 jOOQ 创建自定义聚合函数
- mysql - 使用临时表进行联合?