Вложенное лямбда-выражение, переведенное из оператора SQL - PullRequest
0 голосов
/ 26 января 2011

Используя лямбда-выражения, как вы переводите этот запрос?

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

Есть предложения по переводу этих запросов в эти лямбда-выражения? что не так в этих функциях?

1 Ответ

0 голосов
/ 27 января 2011

Я не хочу звучать покровительственно, но я бы посоветовал вам взять книгу C # для начинающих, прежде чем идти дальше.Вы допустили ошибки в базовом синтаксисе, таком как приоритет оператора и сравнение на равенство.Кроме того, помните, что примитивные типы данных не могут быть проверены на ноль, если они явно не определены как обнуляемые.В вашем случае emp будет иметь тип int?, А не int.А пока попробуйте

_employeeService.Where(e=>(e.emp_id==emp) && (dep == null || dep.contains(e.dep_id)) );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...