(私は Entity Framework を初めて使用するので、これが簡単な質問である場合は申し訳ありません!)
私の DB テーブルには、[SiteURL] というタイトルの列と別の [キーワード] というタイトルの列があります。
そこにはレコードがありますが、キーワード フィールドにエントリがないレコードもあります。ユーザーがこれら 2 つの列に基づいてレコードをフィルターできるようにしたいと考えています。
私のコードはここにあります:
Publishers = db.Publishers.Where(p =>
p.isActive == true
&& p.SiteURL.ToLower().Contains(((txtFilterBy_SiteURL.Value.Length > 0) && (txtFilterBy_SiteURL.Value.ToLower() == "site url")) ? p.SiteURL.ToLower() : txtFilterBy_SiteURL.Value.ToLower())
&& p.Keywords.ToLower().Contains(((txtFilterBy_KeyWord.Value.Length > 0) && (txtFilterBy_KeyWord.Value.ToLower() == "keyword")) ? p.Keywords.ToLower() : txtFilterBy_KeyWord.Value.ToLower())
).ToList();
私は言おうとしています:
IF txtFilterBy_SiteURL.Value が空ではなく、「サイト URL」と等しくない場合、[SiteURL] で txtFilterBy_SiteURL.Value に入力されたものを検索します。
と
IF txtFilterBy_KeyWord.Value が空ではなく、"keyword" と等しくない場合、txtFilterBy_KeyWord.Value に入力されたものの条件リストに [キーワード] を含めます。
ID | SiteURL | Keywords |
1 | Rod.org | Travel |
2 | jane.com | |
3 | fred.com | motoring |
したがって、ユーザーが「.com」を txtFilterBy_SiteURL に入力した場合、私は戻りたい
ID | SiteURL | Keywords |
2 | jane.com | |
3 | fred.com | motoring |
ユーザーが「.com」を txtFilterBy_SiteURL に入力し、「mot」を txtFilterBy_KeyWord テキストボックスに入力すると、次のようになります。
ID | SiteURL | Keywords |
3 | fred.com | motoring |