首页 > 解决方案 > 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?

谢谢。

标签: c#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()

推荐阅读