поиск по нескольким полям в linq - PullRequest
0 голосов
/ 06 мая 2020

У меня есть таблица сотрудников EF с полями 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 для моего случая?

Спасибо.

1 Ответ

1 голос
/ 06 мая 2020

Вам не нужно повторно использовать a=> во втором условии и сравнивать emp.FirstName с нулевой, а не 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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...