5

式に含まれるサブクエリが順序付けられるように式を変更するコードを書いています。

SOで同様のコードを見つけましたが、うまくいきません。私もこの回答を見てみましたが、これを自分のコードに適用することはできません

型 'Queryable' のジェネリック メソッド 'OrderBy' は、指定された型引数および引数と互換性がありません。メソッドが非ジェネリックの場合は、型引数を指定しないでください。

MethodCallExpression orderByCallExpression = Expression.Call(
    typeof(Queryable),
    "OrderBy"/*Descending*/,
    new Type[] { typeof(TSource), filterpart.OrderOverPropertyGetterValueType },
    navigationalProperty.Body,
    filterpart.OrderOverPropertyGetter);                            

2 つの型パラメーターまたは他の 2 つの引数のどちらがこのエラーを引き起こしているのかを突き止めようとしています。

  • OrderOverPropertyGetterValueTypeちょうどtypeof(DateTime)この場合です
  • TSourceはエンティティ タイプです ( Gifts)
  • navigationalProperty.Bodysource.Gifts.AsQueryable()次の式タイプの{ } を含む:System.Linq.Expressions.MethodCallExpression
  • filterpart.OrderOverPropertyGetter{g => g.Date}式タイプを含むSystem.Linq.Expressions.Expression<System.Func<Gift,System.DateTime>>

4 つのパラメーターのどれが間違っているかを診断する方法がわかりません。式のタイプの 1 つが正しくない可能性があると考えています。

4

1 に答える 1

1

エラーが示唆するように、私の型定義は間違っていました。

typeof(TSource)typeof(TNav)私たちは注文しているので、そうでなければなりませんでしたsource.Gifts

于 2013-07-30T13:08:50.130 に答える