0

次の文字列コマンド = orderByDesc として、EF 汎用リポジトリの orderby 式を作成しました。"OrderByDescending" : "OrderBy";

var type = typeof(T);

var property = type.GetProperty(orderby);

var parameter = Expression.Parameter(type, "p");

var propertyAccess = Expression.MakeMemberAccess(parameter, property);

var orderByExpression = Expression.Lambda(propertyAccess, parameter);

var resultExpression = Expression.Call(typeof(Queryable), command, new Type[] { type, property.PropertyType },

                       items.Expression, Expression.Quote(orderByExpression));
items = items.Provider.CreateQuery<T>(resultExpression);

今、注文のために2列の式を作成したいのですが、役立つものを見つけることができませんでした。

2 列の orderby 式を作成するのを手伝ってください。

4

3 に答える 3

0

LINQ での複数の列による並べ替えは、 を呼び出しOrderBy()た後に を 0 回以上呼び出すことで機能しThenBy()ます。への単一の呼び出しを使用してこれを行うことはできませんOrderBy()

たとえば、列abで並べ替えたい場合は、次のような式を生成する必要があります。

items.OrderBy(p => p.a).ThenBy(p => p.b)
于 2013-05-20T20:01:54.500 に答える