通常,当我们有一个包含多个可能过滤器的网格结果时,我们可能会使用类似于此的逻辑:
var query = db.Something;
if(isFilter1 != null)
query = query.Where(x=>x.Prop1 == isFilter1);
}
if(isFilter2 != null)
query = query.Where(x=>x.Prop2 == isFilter2);
}
.... etc...
var finalResult = query.ToList();
但现在我想使用这种逻辑,但使用“OR”而不仅仅是“AND”。我想要实现的“查询的最终结果”的一个简单示例。
var finalResult = db.Something.Where(x =>
x.Prop1 == null &&
x.Prop2 != 0 &&
x.Prop3 == id &&
(x.Prop4 == "String1" || x.Prop4== "String2" || x.Prop4== "String3"));