コンパイルしたLINQ to SQLクエリをリファクタリングすることは可能ですか?いくつかのロジックを持つクエリがあるとします。その上に構築したいと思います。そのクエリを再利用することは可能ですか?例えばコンパイル済みのLINQクエリをどのようにリファクタリングしますか?
、私はアクティブなアイテムを取得するための基本的なクエリがあるとします。
Func<DataContext, IQueryable<Item>> GetActiveItems =
CompiledQuery.Compile((DataContext context) =>
context.Items.Where(item => item.IsActive));
私は別のクエリを作成するには、上記の式に構築したいと思います。 CompiledQuery
のドキュメントは、コンパイルされたデリゲートの結果に別の演算子を適用できないことを示しています。そのような表現をリファクタリングする推奨される方法は何ですか?
Expression
を使用する必要がありますが、どのように使用する必要がありますか?それとも良い方法がありますか?
ありがとうございました。 'PredicateBuilder'は最適ではありませんでしたが、LinqKitの' Expand'メソッドは私が必要としたものでした。あなたの答えを編集してそれを参照することができれば(小さな例が好ましい)、私はそれを喜んで受け入れます。 –