2011-01-26 49 views
0

使用lambda表達式時,如何翻譯此查詢?從SQL語句翻譯的嵌套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

這是否會導致異常?真?任何細節? – 2011-01-26 20:04:59

回答

0

我的意思並不是聽起來光顧,但我建議你在繼續閱讀之前拿起初學者的C#書。您在基本語法中犯了錯誤,例如運算符優先級和等式比較。 另外,請記住,原始數據類型不能檢查爲空,除非它們明確指定爲可空。在你的情況下,emp的類型是int?,而不是int。 同時,請嘗試

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