私はGroupBy(ラムダ式)を行うためにDynamic Linq(ScottGuが発行したもの)を使用しようとしています。私には物体があります。私はAsQueryableをやっています。これは私が持っているものです..型引数を使用から推測することはできません、誰も助けてくださいできますか?
var result = Items.AsQueryable().GroupBy("DeliveryDate");
しかし、それは私に引数が使用から推論することはできないと言っているエラーを与えます。私はそれが正しいOrderByを見ていないと思う。
商品はList<Stock>
です。
<>をGroupBy
に追加しようとしましたが、1つ以上のアイテムを渡す必要があると思います。私は少し混乱しています。
私が(文字列を介して)渡しているフィールドは、任意のタイプであり、この例ではDateTimeです。
標準のLINQを実行すると機能します。すなわち:ここ
var result = Items.AsQueryable().GroupBy(x => x.DeliveryDate);
は(ScottGuから)拡張メソッドです:
public static IQueryable GroupBy(this IQueryable source, string keySelector, string elementSelector, params object[] values) {
if (source == null) throw new ArgumentNullException("source");
if (keySelector == null) throw new ArgumentNullException("keySelector");
if (elementSelector == null) throw new ArgumentNullException("elementSelector");
LambdaExpression keyLambda = DynamicExpression.ParseLambda(source.ElementType, null, keySelector, values);
LambdaExpression elementLambda = DynamicExpression.ParseLambda(source.ElementType, null, elementSelector, values);
return source.Provider.CreateQuery(
Expression.Call(
typeof(Queryable), "GroupBy",
new Type[] { source.ElementType, keyLambda.Body.Type, elementLambda.Body.Type },
source.Expression, Expression.Quote(keyLambda), Expression.Quote(elementLambda)));
}
私はプロジェクトusing System.Linq.Dynamic;
で使用しているが - と私は別の方法では、動的OrderBy
を使用していますので、私はそれが必要知っていますそれを見ることができる。
私はちょっと混乱していますが、ダイナミックLINQを使用しているようですが、私はどのオブジェクトを使用しているのか分かりません。唯一非this
引数がありますように、この署名
public static IQueryable GroupBy(this IQueryable source,
string keySelector, string elementSelector, params object[] values)
と
同じ問題の別のしかし同様の解決策については、[my article on CP](http://www.codeproject.com/KB/webforms/HandleGridViewOnSorting.aspx)も参照してください。 – abatishchev