LINQ中的条件WHERE

时间:2012-09-09 08:39:58

标签: c# linq entity-framework tsql linq-to-entities

您是否有任何基于搜索条件构建LINQ语句的建议?

我将传递一个'SearchCriteria'类的实例,所有参数都可以为空。

然后我想

if (sc.a != null)
    // add to where

if (sc.b != null)
    // add to where

关键是这些是OR而不是AND。

任何提示?

对于奖励积分,我想在int上使用'contains'?但我只能等于或等于。

1 个答案:

答案 0 :(得分:5)

尝试:

.Where(x =>
    (x.a != null ? x.a == a : false) &&
    (x.b != null ? x.b == b : false));

.Where(x =>
    (x.a != null && x.a == a) ||
    (x.b != null && x.b == b));

此外:

.Where(x => new int[] { 1, 2, 3 }.Contains(x.i));