Linq查询跳过查询null条件

时间:2013-10-25 04:59:21

标签: linq

我对linq很新。我有客户表。我想根据两个条件选择客户

  1. 客户类型

  2. 客户城市

  3. 所以我可以编写像

    这样的查询
    from c in clients
    where c.Type == cType
    && c.City == cCity
    

    我是否可以使用相同的查询来获取仅提供客户端类型的结果(忽略City条件。像*这样的somithing)。

    我想要做的是,如果cCity或cType为 null ,请忽略该条件。

    这可能吗?

3 个答案:

答案 0 :(得分:1)

这不是你想要的吗?

from c in clients
where (c.Type == null || c.Type == cType)
&& (c.City == null || c.City == cCity)

答案 1 :(得分:0)

您可以在实际执行之前编写LINQ语句:

if (cType != null)
    clients = clients.Where(c => c.Type == cType);
if (cCity != null)
    clients = clients.Where(c => c.City== cCity);
// At this point the query is never executed yet.

第一次如何执行查询的示例:

var results = clients.ToList();

答案 2 :(得分:0)

from c in clients
where (cType == null ? 1 == 1 : c.Type == cType)
&& (cCity == null ? 1 == 1 : c.City == cCity)