複数の式ツリーをマージして、Entity Frameworkクエリのセレクタを構築する方法を探しています。クエリは、ユーザー提供のパラメータに基づいて選択する列を認識します。たとえば、基本クエリはエンティティのID /名前列を返します。パラメータが明示的に設定されてDescription列も取得された場合、クエリはID/Name/Descriptionを返します。エンティティフレームワーク式ツリーをマージする
だから、MergeExpressionsコードのコードは次のコードに必要です。
Expression<Func<T, TDto>> selector1 = x => new TDto
{
Id = x.Id,
Name = x.Name
}
Expression<Func<T, TDto>> selector2 = x => new TDto
{
Description = x.Description
}
var selector = selector1;
if (includeDescription)
selector = MergeExpressions(selector1, selector2);
var results = repo.All().Select(selector).ToList();
ありがとうございます。
シンプルで清潔なソリューション。アイワンありがとう。 – Joe