使用lambda表达式,如何翻译此查询?
select * from employee where emp_id=1 and dep_id in (1,2,3,4).
我正在尝试使用此表达式,但这导致例外情况:
public IEnumrable<employees> getemployee(int emp,list<int> dep )
{
_employeeService.GetAll(e=>(e.emp_id=emp||emp==null) && (e.dep_id.where(dep.contains(e.dep_id))|| dep.count==0 )
}
有关将这些查询转换为这些lambda表达式的建议吗? 这些功能有错吗?
答案 0 :(得分:0)
我并不是故意让人光顾,但我建议你在继续学习之前先拿起一本初学者的C#书。您在基本语法中犯了错误,例如运算符优先级和相等比较。 此外,请记住,不能检查原始数据类型是否为null,除非它们被明确指定为可为空。在你的情况下,emp将是int?类型,而不是int。 同时,试试
_employeeService.Where(e=>(e.emp_id==emp) && (dep == null || dep.contains(e.dep_id)) );