Ars*_*Ars 7 c# linq ignore where conditional-statements
如果参数为null或空FE,我需要忽略WHERE语句中的部分或全部条件:
我有简单的LINQ查询
var query = from x in context.a
where x.p == param1 && x.i == param2
select x;
Run Code Online (Sandbox Code Playgroud)
x.p == param1如果param1为null或emty,我该如何忽略?
试过这个
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;
Run Code Online (Sandbox Code Playgroud)
但得到了
Object reference not set to an instance of an object.
Run Code Online (Sandbox Code Playgroud)
如果第二个组合框的项目为空.怎么了?
您可以将其添加为条件:
var query= from x in context.a
where String.IsNullOrEmpty(param1) || (x.p == param1 && x.i == param2)
select x;
Run Code Online (Sandbox Code Playgroud)
如果param1为null或为空,则条件将始终为true,这有效地"忽略"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;
Run Code Online (Sandbox Code Playgroud)
如果你想单独检查,上述两个条件也适用