2014-03-27 36 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

非常感謝你 –

相關問題