2017-07-16 5 views
0

私はC#core mvcの素晴らしいNinjaNye.SearchExtensionsを使用します。それは完璧に動作しますが、動的検索オプションが必要です。それは可能ですか?あるいは、他のブロックをいくつか必要としますか?NinjaNye.SearchExtensionsを使用した動的Linqの検索

私は私が検索するブール変数(ユーザが、彼が検索したいチェックボックスとGUIで選択することができます)があり、このLINQ

return tmpIQueryable 
    .Where(c => data.Contains(c.id) && c.enddate > DateTime.Now.Date && c.startdate < untildate) 
    .Include(c => c.DataContainer) 

    .Search(x => x.title.ToLower(), 
      x => x.manu.ToLower(), 
      x => x.short.ToLower(), 
      x => x.long.ToLower(), 
      x => x.detail.ToLower()) 
    .ContainingAll(searchlist) 

を持っている - search_in_title、search_in_manu、search_in_short、search_in_long、search_in_detailを。フィールド内でダイナミックに検索するにはどうすればいいですか?この場合は5^2 if/elseを別のlinqにします。

どうもありがとう ラルフ

答えて

0

あなたは.Where句を複数回追加することがあります。これは、LINQののほんの一例ですが、ないNinjaNye.SearchExtensions

if (searchInTitleChecked) 
    tmpIQueryable = tmpIQueryable.Where(r => r.Title.ToLower() == title); 

if (searchInShortChecked) 
    tmpIQueryable = tmpIQueryable.Where(r => r.Short.ToLower() == short); 

を。それが役に立たないなら、無視してください。

あなたがここに同じことをしようとするかもしれしかし:

if (searchInTitleChecked) 
    tmpIQueryable = tmpIQueryable.Search(x => x.title.ToLower()); 

if (searchInShortChecked) 
    tmpIQueryable = tmpIQueryable.Search(x => x.short.ToLower()); 

tmpIQueryable = tmpIQueryable.ContainingAll(searchlist); 
+0

こんにちは、あなたの速い返事ありがとうございました!残念ながら、この方法でNinjaNye.SearchExtensionsで動作していないようです:(私はこの解決策を試してみるといくつかのエラーが発生します) このコンポーネントは、リスト内の1つまたは複数のsearchkeywordsを柔軟に検索するために使用します。 – Ralf

関連する問題