カスタム オブジェクトの LINQ クエリを動的に生成する
データ クエリ パラメーターが動的に決定されるシナリオでは、コードを再コンパイルする必要性が重要になる可能性があります。重荷。この再コンパイルを回避し、データベースに保存されている XML 構造などの外部パラメーターに基づいて LINQ クエリを動的に生成することは可能ですか?
この課題に対処するには、式ツリーの使用を検討してください。以下に例を示します。
var param = Expression.Parameter(typeof(SomeObject), "p"); var exp = Expression.Lambda<Func<SomeObject, bool>>( Expression.Equal( Expression.Property(param, "Name"), Expression.Constant("Bob") ), param ); var query = someObj.Where(exp);
この例では、SomeObject 型のパラメーター "p" を定義します。式「exp」は、Property() メソッドを使用して「p」の「Name」プロパティにアクセスし、Equal() メソッドを使用してそれを定数値「Bob」と比較します。最後に、Func
式ツリーは柔軟性が高くなりますが、操作が複雑になる場合もあります。ただし、外部入力に基づいて LINQ クエリを動的に生成するための強力なメカニズムを提供します。
以上がLINQ クエリは外部パラメーターから動的に生成できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。