我正在编写一些将修改表达式的代码,以使其中包含的子查询得到排序。
我在SO上找到了类似的代码:https://stackoverflow.com/a/1379693/509464但这对我没有用我也尝试查看this答案,但无法将其应用于我的代码段
类型为'Queryable'的通用方法'OrderBy'与提供的类型实参和实参不兼容。如果该方法是非泛型的,则不应该提供任何类型参数。
MethodCallExpression orderByCallExpression = Expression.Call(
typeof(Queryable),
"OrderBy"/*Descending*/,
new Type[] { typeof(TSource), filterpart.OrderOverPropertyGetterValueType},
navigationalProperty.Body,
filterpart.OrderOverPropertyGetter);
我正在尝试找出2个类型参数或2个其他参数中的哪个导致此错误。
typeof(DateTime)
案例source.Gifts.AsQueryable()
},其表达式类型为:System.Linq.Expressions.MethodCallExpression
{g => g.Date}
的System.Linq.Expressions.Expression<System.Func<Gift,System.DateTime>>
我不知道如何诊断四个参数中的哪一个是不正确的,我认为其中一种表达式类型可能不正确...
我的类型定义是错误的,如错误提示所示。
[typeof(TSource)
必须为typeof(TNav)
,因为我们要订购source.Gifts
。