2012-05-25 107 views
0

我寫了一個存儲過程返回我在下面的格式搜索姓名+「」 +姓名使用LINQ

LastName+", "+FirstName 

我有它像下面分配給類屬性的客戶名稱。

Customer = DbContext.ExecuteStoreQuery<SearchEmployeeCDTO>("exec GetCustomerDetails").AsQueryable().ToList(); 

現在我要搜索姓氏像下面我已經做了客戶的companyName

if(CompanyName!=null && LastName==null) 
Customer = Customer.Where(c => c.CompName.Contains(CompanyName)).ToList(); 

請建議我怎麼能爲姓氏的lastName的和名字格式

感謝的組合來搜索,

回答

1

也許這樣?

if(LastName!=null) 
    Customer = Customer.Where(c => c.CustName.StartsWith(LastName)).ToList(); 
+0

或者說:)如果(公司名稱!= NULL &&名字== NULL) 客戶= Customer.Where(C => c.CompName.Contains(公司名稱)&& C^.Name.EndsWith(名字))ToList(); – igofed

+0

我的sql查詢就像從客戶中選擇姓氏+「,」+ firstName作爲CustName。所以我的頭腦是如何從它發現姓氏數據,因爲當我寫代碼customer.where(c => c。那麼我不會在這裏得到姓氏的名字) – aamankhaan

+0

我可能仍然是誤解......我的想法是,如果你的CustName字段總是格式化爲以姓氏部分開頭,那麼你應該能夠過濾CustName.StartsWith(LastName)... – Peter

0

,如果你嘗試檢查其另一個列表包含相同或不那麼你可以使用這個值:(如果您檢索泛型列表元素的這些不同屬性)

bool b = your1stList.Exists(c=> c.firstName == your2ndList.firstName , 
           c.middleName == your2ndList.middleName , 
           c.lastName == your2ndList.lastName) 

if (b == true) 
{ 
    MessageBox.Show("You already have this Customer"); 
} 

這是一個很好的方式來檢索所有屬性沒有任何concatanation活動..可以避免一些頭痛在futural查詢;)

另一方面,如果我們繼續從您的查詢,那麼你需要得到的姓氏+ firstName轉換爲字符串並使用String.Split(「,」)函數on放入一個字符串數組,然後如果單詞lastName + firstname檢查姓氏的數組[0]索引和firstname的數組[1]。

選擇您想要的方式..