2016-11-10 165 views
0

我正在爲我的客戶搜索功能構建搜索查詢: 我將所有這些字段傳遞到函數中,並想知道構建LINQ表達式的最佳方式是什麼。有些字段可能爲空字符串和搜索應該使用的「包含」,而不是搜索確切的字段字符串LINQ - 構建搜索查詢

public List<Customer> SearchCustomer(
    string membershipID, 
    string preferName, 
    string firstName, 
    string lastName, 
    string nric, 
    string phoneNumber, 
    string email, 
    DateTime dob, 
    string gender, 
    string address, 
    Boolean vip, 
    bool isDeleted) 
+0

什麼是你想要執行的查詢?需要一個簡單的例子 – barakcaf

回答

2

您可以通過以下方式管理多個濾波器參數:

var result = customerCollection. 
    .Where(c => membershipID != null ? c.membershipId.Contains(membershipID) : true) 
    .Where(c => preferName != null ? c.preferName.Contains(membershipID) : true) 

    ... 

    .ToList(); 

我希望你有想法

+0

我有這個,它只工作正常,直到我輸入membershipID並更喜歡名字和名字。如果我嘗試使用其他字段搜索更多,它會返回我0記錄。 列表 customers = context.Customers.Where(x => membershipID!= 0?x.MembershipID.ToString()。Contains(membershipID.ToString()):true) .Where(x => preferName!= null ?x.PreferName.Contains(preferName):true) .Where(x => firstName!= null?x.FirstName.Contains(firstName):true) .Where(x => lastName!= null?x.LastName .Contains(lastName):true) – user7117907

+0

發佈您正在使用的整個查詢 – user449689