Предложение Linq where с обнуляемыми параметрами - PullRequest
0 голосов
/ 05 декабря 2018

Я пытаюсь выполнить запрос linq, который может содержать обнуляемые параметры.

Это мой вызов linq

listOfControlsVM = db.Controls.Where((status == null || s.Status.Description == status) && (impact == null || s.Impact == impact)).ToList();

Теперь параметры состояния или воздействия могут быть обнуляемыми (у меня есть еще два, но я удалил их из примера).С подходом у меня запрос не возвращает правильный набор результатов.

Я хочу знать, есть ли другой лучший подход для работы с обнуляемыми параметрами в linq.Например, если статус или влияние имеют значение, включите их в условия, в противном случае пропустите их.

1 Ответ

0 голосов
/ 06 декабря 2018

Существует HasValue для проверки нулевого значения в переменной nullable вместо нулевого.

 listOfControlsVM = db.Controls.Where((!status.HasValue || s.Status.Description == status) && (!impact.HasValue || s.Impact == impact)).ToList();

Надеюсь, это поможет вам:)

...