ASP.NET中使用Where子句筛选数据无结果问题求助
问题解决:筛选DepartmentId在指定列表中的员工
你的问题出在C#语法错误:C#中没有in运算符用于判断元素是否属于集合,你写的t.DepartmentId in DepartmentList是无效语法,EF无法正确生成对应的SQL查询,所以返回空结果。
正确写法
使用集合的Contains方法来实现"IN"查询逻辑,修正后的代码如下:
// 注意C#大小写敏感,Var要改成小写var var applicationDbContext = _context.tblEmployees; // 用Contains替换错误的in语法 var applicationDbContext2 = applicationDbContext.Where(t => DepartmentList.Contains(t.DepartmentId));
额外注意细节
- 你添加元素的代码
DepartmentList.Add(3)缺少分号,需要补上:DepartmentList.Add(3);; - 如果需要立即获取内存中的数据集合,可以在末尾加上
ToList():
var filteredEmployees = applicationDbContext.Where(t => DepartmentList.Contains(t.DepartmentId)).ToList();
修正后就能正确筛选出DepartmentId为2和3的员工(Id#3、4、6)。
内容的提问来源于stack exchange,提问作者Gholam Soori
相关产品推荐
相关产品推荐

