如何使用 EF 和列表过滤数据

How Do I filter data with EF and a List

我有一个列表,我想用它来过滤数据库中的数据。 我想计算数据库中匹配的行数。

但我一直遇到语法错误问题。

知道哪里出了问题吗?

List<EmployeeInfo> list = new List<EmployeeInfo>();

// EmployeeInfo(company, employeer, employeeId)

list.add(new EmployeeInfo(1, 2, 1))
list.add(new EmployeeInfo(1, 2, 2))
list.add(new EmployeeInfo(1, 2, 3))
list.add(new EmployeeInfo(1, 3, 1))
list.add(new EmployeeInfo(1, 3, 6))
list.add(new EmployeeInfo(1, 4, 2))
list.add(new EmployeeInfo(1, 5, 3))

// I want to count the number of rows that matches the criteria list. Example: 
// But it is not working. 
int count = Model.Points.Count(x => x.companyId = list[0].CompanyId &&
list.Contains(e => e.Employeer == x.employeeId && e.employeeId == x.employeeId);

您似乎在 x.companyId = 列表[0] 中缺少一个 = 你的计数语句应该是

int count = Model.Points.Count(x => x.companyId == list[0].CompanyId && list.Contains(e => e.Employeer == x.employeeId && e.employeeId == x.employeeId);

试试下面的代码。

            List<EmployeeInfo> list = new List<EmployeeInfo>();

            // EmployeeInfo(company, employeer, employeeId)

            list.Add(new EmployeeInfo(1, 2, 1));
            list.Add(new EmployeeInfo(1, 2, 2));
            list.Add(new EmployeeInfo(1, 2, 3));
            list.Add(new EmployeeInfo(1, 3, 1));
            list.Add(new EmployeeInfo(1, 3, 6));
            list.Add(new EmployeeInfo(1, 4, 2));
            list.Add(new EmployeeInfo(1, 5, 3));

            // I want to count the number of rows that matches the criteria list. Example: 
            // But it is not working. 
            int count = Model.Points.Count(x => x.companyId == list[0].CompanyId 
                && list.Any(e => e.Employeer == x.employeeId && e.employeeId == x.employeeId));