2014-03-27 38 views
1

我有一个查询跳过查询的一部分,如果项目文本为空

  return uow.CustomerRepo 
      .Get() 
      .Where 
      (
       c=> 
        c.Firstname.StartsWith(customerSearch.Initial) && 
        c.Surname == customerSearch.Surname   &&       
        c.Email == customerSearch.Email    && 
        c.Postcode == customerSearch.PostCode 
      ) 

有没有办法跳过查询的部分,如果东西customerSearch是空的?

,所以我想跳过部分

c.Surname == customerSearch.Surname 

如果

customerSearch.Surname 

是空

回答

4

您可以用检查明确的customerSearch部分的条件做到这一点:

.Where 
(
    c=> 
     (customerSearch.Initial == null || c.Firstname.StartsWith(customerSearch.Initial)) && 
     (customerSearch.Surname == null || c.Surname == customerSearch.Surname)   &&       
     (customerSearch.Email == null || c.Email == customerSearch.Email)    && 
     (customerSearch.PostCode == null || c.Postcode == customerSearch.PostCode) 
) 

如果您需要检查空字符串而不是null,请相应地更改条件。

+0

我推荐'string.IsNullOrEmpty()' – BenVlodgi

+0

非常感谢你 –

相关问题