无论如何加入LINQ的条款是OR吗?
var ints = new [] { 1, 3, 5, 7 };
var query = from i in ints select i;
query = query.Where (q => q == 3);
query = query..Where (q => q == 7);
Run Code Online (Sandbox Code Playgroud)
我想要的是能够动态添加where子句但是使用OR而不是AND
Tj *_*lie 14
如果你想继续使用强类型的Linq查询,你应该研究LinqKit和谓词构建.我已经将它用于类似的东西,并发现它与And/Or堆叠过滤器配合得很好.
有关更多深入信息,请查看Nutshell摘录中的C#4.0/3.0.这是我的代码中的一个片段:
//Setup the initial predicate obj then stack on others:
basePredicate = basePredicate.And(p => false);
var predicate1 = PredicateBuilder.True<Person>();
foreach (SearchParms parm in parms)
{
switch (parm.field)
{
case "firstname":
predicate1 = predicate1.And(p => p.FirstName.Trim().ToLower().Contains(sValue));
break;
//etc...
}
}
//Run a switch based on your and/or parm value to determine stacking:
if (Parm.isAnd) {
basePredicate = basePredicate.And(predicate1);
} else {
basePredicate = basePredicate.Or(predicate1);
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5955 次 |
最近记录: |