簡體   English   中英

linq 多字段搜索

[英]linq multiple field search

我有 EF Employee 表,其中包含字段 EmpNo、FirstName、LastName、Email。 並創建 LINQ 以搜索所有列並返回現有記錄。 如果一個或多個字段為 null 或根據現有數據清空返回結果。 我寫了代碼:

    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()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM