我正在尝试执行可能具有可空参数的linq查询。
这是我的电话
listOfControlsVM = db.Controls.Where((status == null || s.Status.Description == status) && (impact == null || s.Impact == impact)).ToList();
现在状态或影响都可以是可为空的参数(我还有两个,但是我从示例中删除了它们)。使用这种方法,我得到的查询没有返回正确的结果集。
我想知道在linq中是否还有其他更好的方法可以处理可空参数。例如,如果状态或影响有价值,则将其包括在条件中,否则将其忽略。
答案 0 :(得分:0)
有一个HasValue
会检查nullable
变量上的空值而不是空值。
listOfControlsVM = db.Controls.Where((!status.HasValue || s.Status.Description == status) && (!impact.HasValue || s.Impact == impact)).ToList();
我希望这会帮助您:)