我有一個findAll
功能得到所有記錄在數據庫中的表Contacts
,然後他們根據其值在搜索表單中選擇的用戶過濾器。結果在一次過濾一個過濾器。C#的IQueryable不工作
IQueryable<Contact> resultContacts = db.Contacts;
if(request['Name'] != "")
{
resultContacts = resultContacts.Where(a => a.Name.Contains(Name));
}
if(request['Phone'] != "")
{
resultContacts = resultContacts.Where(a => a.Phone.Equals(Phone));
}
if(request['Company'] != "")
{
resultContacts = resultContacts.Where(a => a.Company.Contains(Company));
}
return resultContacts;
問題是,現在這是行不通的。每個if
內部的resultContacts.Where
重置爲原來的resultContacts
,因爲某些原因我在第一行上。例如:當我調試,應用更改,如果(我結束了10出的100條記錄)第一里面,但是當我進入第二個如果,代碼查詢原resultContacts
,而不是10我作爲一個第一個結果爲if
。
這工作正常,爲期一年,直到2周前。我不知道在我的代碼中是否有更改...如果我添加了引用或其他可以進行此更改的內容。
任何想法爲什麼? 謝謝!
您是不是想要在每個查詢中使用請求對象?像'。載有(要求[ '名稱']));' – Niklas
我很驚訝,C#允許這種語法'要求[ '電話']'單引號懷抱'char'不'string' – Imad
另外'請求[ '名稱' ]'與'Name'不是一回事。 「電話」和「公司」同上。不要把代碼看起來像你所擁有的。發佈*真實*代碼。 – hvd