从SQL语句转换的嵌套lambda表达式

时间:2011-01-26 20:01:05

标签: sql c#-4.0 lambda

使用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表达式的建议吗? 这些功能有错吗?

1 个答案:

答案 0 :(得分:0)

我并不是故意让人光顾,但我建议你在继续学习之前先拿起一本初学者的C#书。您在基本语法中犯了错误,例如运算符优先级和相等比较。 此外,请记住,不能检查原始数据类型是否为null,除非它们被明确指定为可为空。在你的情况下,emp将是int?类型,而不是int。  同时,试试

_employeeService.Where(e=>(e.emp_id==emp) && (dep == null || dep.contains(e.dep_id)) );