首页 > 解决方案 > 如何使用 EF 和 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);

标签: c#entity-frameworklinqfiltering

解决方案


好像您在 x.companyId = list[0] 中缺少一个 = 您的计数语句应该是

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

推荐阅读