LINQ WHERE语句/忽略条件
本文关键字:条件 WHERE 语句 LINQ | 更新日期: 2023-09-27 18:08:58
如果参数为null或空,我需要忽略WHERE语句中的部分或全部条件F.E:
我有一个简单的LINQ查询
var query = from x in context.a
where x.p == param1 && x.i == param2
select x;
如果param1为空或空,我如何忽略x.p == param1
?
编辑
尝试这个
var query = from myLog in myContext.ApsValidationLogs
where (myLog.systemtype == comboBoxSystemType.SelectedItem.ToString() || string.IsNullOrEmpty(comboBoxSystemType.SelectedItem.ToString()))
&& (myLog.bankid == comboBoxBankId.SelectedItem.ToString() || string.IsNullOrEmpty(comboBoxBankId.SelectedItem.ToString())))
select myLog;
但是得到
Object reference not set to an instance of an object.
如果第二个组合框的项为空。怎么了?
您可以将其添加为条件:
var query= from x in context.a
where String.IsNullOrEmpty(param1) || (x.p == param1 && x.i == param2)
select x;
如果param1
为null或空,则条件将始终为真,这将有效地完全"忽略"where条件。
您可以单独检查param1
和param2
。
var query = from x in context.a
where (X.p==param1 || string.IsNullOrEmpty(param1))
&& (X.i==param2 || string.IsNullOrEmpty(param2))
select x;
以上两个条件也可以,如果你想单独检查