Contacts
テーブルからデータベース内のすべてのレコードを取得し、ユーザーが検索フォームで選択した値に応じてフィルターを適用するfindAll
関数があります。結果は、その時点で1つのフィルタでフィルタリングされます。C#IQueryable not working
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
にリセットされています。何らかの理由で最初の行にありました。例えば、私がデバッグすると、変更は1番目のif(100個のレコードのうち10個で終わる)に適用されますが、2番目のifに入ると、コードは元のresultContacts
を照会しています。最初の結果if
これは2週間前まで1年以上にわたって正常に機能しました。私のコード上で何か変わったかどうかわかりません...もし私がこの変更を行うリファレンスを追加したら、
理由は何ですか? ありがとうございました!
各クエリでリクエストオブジェクトを使用することを意味しましたか? – Niklas
私はこの構文を許して驚いています 'request ['Phone']'一重引用符 'char'ではなく' string' – Imad
また、 'request ['Name'])); ] 'は' Name'と同じものではありません。 「電話」と「会社」の同上。あなたが持っているもののような外観のコードを置かないでください。 *実際のコードを投稿してください。 – hvd