レコードのリストをフィルタリングするための一般的な関数を使用しています。
関数は以下のとおりです。
class FilterRecords
{
public static object ParseExpression(string Condition, string FilterColumn)
{
string _operator = "";
string _condition = "";
if (Condition.Substring(0, 1) == "<" || Condition.Substring(0, 1) == ">")
{
_operator = Condition.Substring(0, 1);
if (Condition.Substring(1, 1) == "=")
{
_operator += "=";
_condition = Condition.Substring(2);
}
else
{
_condition = Condition.Substring(1);
}
_operator = "=";
return (dbContext.OrdsRlsds.AsQueryable().Where(FilterColumn + " " + _operator + " " + " @0", _condition).ToList());
}
else
{
if (Condition.Contains(','))
{
string[] conds = Condition.Split(',');
return (dbContext.OrdsRlsds.AsQueryable().Where(FilterColumn + " >= @0 && " + FilterColumn + " <= @1", conds).ToList());
}
else
{
return (dbContext.OrdsRlsds.AsQueryable().Where(FilterColumn + " == @0", Condition).ToList());
}
}
}
}
この関数は動的クエリライブラリを使用します。現時点では、1つのタイプのレコード(OrdsRlsds)のみをフィルタリングします。これを汎用フィルターにして、任意のコレクションを渡して、フィルター処理された結果を取り戻すことができるようにする必要があります。