我正在编写一些代码来修改表达式,以便其中包含的子查询得到排序。
我发现了一段类似的代码这里就这样 https://stackoverflow.com/a/1379693/509464,但这对我不起作用。我也尝试看看this https://stackoverflow.com/questions/6892605/cant-find-orderby-on-queryable-with-the-supplied-arguments答案,但我无法将其应用到我的代码中
类型“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.Body
包含{source.Gifts.AsQueryable()
} 表达式类型:System.Linq.Expressions.MethodCallExpression
-
filterpart.OrderOverPropertyGetter
包含{g => g.Date}
与表达式类型System.Linq.Expressions.Expression<System.Func<Gift,System.DateTime>>
我不知道如何诊断这四个参数中哪一个不正确。我认为其中一种表达类型可能不正确。
正如错误所示,我的类型定义是错误的。
typeof(TSource)
必须是typeof(TNav)
,因为我们正在订购source.Gifts
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)