タイトルが良くないのは承知しています。
すべてのエンティティ関数を含むサービスがあります。
私のサービスには、この構造を持つ関数があります
IList<T> GetAllPaged<TKey>(
List<Expression<Func<T, bool>>> predicate,
Expression<Func<T, TKey>> orderKeySelector
);
この関数は、1 つのエンティティからデータを取得して並べ替えます。
今はもっとやりたい。
最初に 1 つのエンティティから選択し、それを順番にグループ化し、最後にグループ化されたアイテムから新しいアイテムを選択します。
このようなもの:
IList<TReturn> GetAllPaged<TResult, TKey, TGroup, TReturn>(
List<Expression<Func<T, bool>>> predicate,
Expression<Func<T, TResult>> firstSelector,
Expression<Func<TResult, TKey>> orderSelector,
Func<TResult, TGroup> groupSelector,
Func<IGrouping<TGroup, TResult>, TReturn> selector
);
それは可能ですか?