グループ化およびフィルタリングされたクエリからデータを取得するコードを書くのを誰かが手伝ってくれませんか?
データは単純なデータテーブルからのものであり、ユーザーが検索パラメーターを1つだけ入力した場合に問題を解決する方法が必要ですが、さらに多くのパラメーターを入力する可能性もありますか?
public class Journal
{
public int ID {get; set;}
public string Field1 { get; set; }
public string Field2 { get; set; }
}
/*variables entered bu user:
searchParam1
searchParam2
...
searchParamN
*/
using (var dbContext = new databaseContext())
{
var serchresult = dbContext.Journals
.Where(p => p.Field1.StartsWith(SearchParam1) &&
p.Field2.StartsWith(SearchPParam2))
.GroupBy(f => f.ID)
.ToList();
}
私が試したフィルタリングされたデータを取得するには:
result = from tr in dbContext.Journals select tr;
if (!String.IsNullOrEmpty(SearchParam1)) {
result = result.Where(tr => tr.Field1.StartsWith(SearchParam1));
}
if (!String.IsNullOrEmpty(SearchParam2)) {
result = result.Where(tr => tr.Field2.StartsWith(SearchParam2));
}
しかし、私はグループ化を追加する必要があります:(
もうすぐです。クエリを2つの部分に分割します。最初の部分で動的フィルタリングを実行し、2番目の部分で残りを実行します。
var source = dbContext.Journals.AsQueryble();
if (!string.IsNullOrEmpty(SearchParam1))
source = source.Where(tr => tr.Field1.StartsWith(SearchParam1));
if (!string.IsNullOrEmpty(SearchParam2))
source = source.Where(tr => tr.Field2.StartsWith(SearchParam2));
var serchresult = source
.GroupBy(f => f.ID)
.ToList();
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加