0

C# で動的検索機能を実装しようとしています。私の検索は次のようになります

Attribute operand Value === > Height > 170 

上記の検索リストのように、ユーザーはそのデータをフィルタリングしたいだけ追加できるため、動的に続きます。属性は私の列名と一致し、SQL DB の異なるテーブルからのものである可能性があります。

この種の検索を実装する最良の方法は何ですか? 私はLinqにかなり慣れていないので、理解しようとしています http://www.albahari.com/nutshell/predicatebuilder.aspx

クエリを動的に作成するにはどうすればよいですか、または維持しやすいこれらの種類の検索に最適な方法は何ですか?

例:

Attribute operand Value === > Height = 170 
Attribute operand Value === > Altitude > 40000  
Attribute operand Value === > temperature < 105 

すべてが実行時にユーザーおよびビルドに合わせてカスタマイズ可能です。

これを実装する最良の方法は何ですか?

4

1 に答える 1

1

式を動的に作成する方法の例については、この質問のこの回答を確認してください。

あなたの場合、このようなものが役立つはずだと思います(これを私の頭の上に書きました、plsは構文エラーを許してください)。

PropertyInfo propInfo = typeof(T).GetProperty(Attribute);
ParameterExpression pe = Expression.Parameter(typeof(Attribute), Attribute);
Expression right = Expression.Parameter(typeof(int), Value);
Expression predicateBody = Expression.GreaterThan(left, right);

Expression<Func<int, bool>> lambda1 =
                Expression.Lambda<Func<int, bool>>(
                    predicateBody,
                    new ParameterExpression[] { numParam });

リファレンス -式ツリーExpressionType

于 2013-03-09T12:52:01.220 に答える