再コンパイルを行わずに LINQ クエリを動的に生成する
クエリ パラメーターが動的に更新される外部データから取得されるシナリオでは、LINQ クエリを生成する必要が生じます。ソースコードを再コンパイルする必要はありません。多数のプロパティを持つ SomeObject のようなオブジェクトを考えてみましょう。
データベースに保存されている XML 構造から条件を抽出することによって、新しい LINQ クエリを動的に作成することは可能ですか?
例:
var result = from i in someObj where //XML requests Name = 'Bob'...so append this where clause name = 'Bob'
を使用したソリューション式ツリー
式ツリーを採用すると、実行可能なsolution:
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);
このアプローチはかなり複雑ですが、動的クエリ生成が必要な特定のシナリオでのソリューションを提供します。
以上がLINQ クエリは再コンパイルせずに XML データから動的に生成できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。