LINQ to SQL определяет где класс в зависимости от параметров - PullRequest
0 голосов
/ 26 января 2010
return (from s in db.StudentMarks
                where s.Class == Class && s.Year == Year // this line
                orderby s.Year, s.ExamType
                select new StudentAddMarks()
                {
                    --Obj
                 }).ToList();

Я собираюсь вернуть Object в зависимости от параметров Class и Year. Я хочу удалить условие where, когда параметры Class и Year равны null или zero.

Любые идеи, пожалуйста.

Ответы [ 2 ]

3 голосов
/ 26 января 2010

Просто добавьте оператор обработки null или ноль значений:

where ((Class != null && Class != 0) ? s.Class == Class : true) &&
      ((Year  != null && Year  != 0) ? s.Year  == Year  : true)

В приведенном выше коде используется сокращенный синтаксис if - then - else, который работает следующим образом:

value = (condition ? if_true : if_false);
// ...is equivalent to...
if (condition)
{
    value = if_true;
}
else 
{
    value = if_false;
}
1 голос
/ 26 января 2010

Это должно работать:

where (s.Class == Class && s.Year == Year) || Class == null || 
       Class == 0 || Year == null || Year == 0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...