2011-01-26 18 views
0

ラムダ式を使用して、このクエリをどのように変換しますか?SQLステートメントからネストされたラムダ式

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) 
} 

これらのラムダ式にこれらのクエリを変換するための任意の提案? これらの機能に問題がありますか?

+0

これは例外ですか?本当に?詳細は? –

+0

@Shmandor、誰かが答えることができなければ、質問を再投稿することはできません。なぜあなたはこの人物を削除して、人が答えることができるように、古いもの(わずか4時間で、すでに再ポスティング!?)を言い換える(言葉を変える)ことを試みなさい。 – Crisfole

+0

@Cpfohl重複は発生しません。これらの関数を正しく書く必要があります。 – ahmed

答えて

0

私はひいきにすることを意味するわけではありませんが、先に進む前に初心者のC#の本を拾うことをお勧めします。演算子の優先順位と等価比較などの基本的な構文にエラーがあります。 また、プリミティブデータ型は、nullableとして明示的に指定されていない限り、nullをチェックできないことに注意してください。あなたの場合、empはint型ではなく、int型であるでしょう。 一方、試してみてください

_employeeService.Where(e=>(e.emp_id==emp) && (dep == null || dep.contains(e.dep_id))); 
関連する問題