Linq where子句具有可空参数

时间:2018-12-05 18:45:05

标签: entity-framework linq linq-to-sql linq-to-entities linq-to-objects

我正在尝试执行可能具有可空参数的linq查询。

这是我的电话

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

现在状态或影响都可以是可为空的参数(我还有两个,但是我从示例中删除了它们)。使用这种方法,我得到的查询没有返回正确的结果集。

我想知道在linq中是否还有其他更好的方法可以处理可空参数。例如,如果状态或影响有价值,则将其包括在条件中,否则将其忽略。

1 个答案:

答案 0 :(得分:0)

有一个HasValue会检查nullable变量上的空值而不是空值。

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

我希望这会帮助您:)