Nenhum método genérico 'OrderBy' no tipo 'Queryable' é compatível com os argumentos de tipo fornecidos

Eu estou escrevendo algum código que irá modificar uma expressão para que a subconsulta contida nele seja ordenada.

Eu encontrei um pedaço de código semelhante aqui no SO:https://stackoverflow.com/a/1379693/509464 Mas não está funcionando para mim Também tentei olharisto resposta, mas eu não sou capaz de aplicar isso ao meu pedaço de código

Nenhum método genérico 'OrderBy' no tipo 'Queryable' é compatível com os argumentos e argumentos de tipo fornecidos. Nenhum argumento de tipo deve ser fornecido se o método não for genérico.

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

Eu estou tentando descobrir qual dos 2 parâmetros de tipo ou 2 outros argumentos está causando esse erro.

OrderOverPropertyGetterValueType é apenastypeof(DateTime) nesse casoTSource é um tipo de entidade (presentes)navigationalProperty.Body contém {source.Gifts.AsQueryable()} com o tipo de expressão:System.Linq.Expressions.MethodCallExpressionfilterpart.OrderOverPropertyGetter contém{g => g.Date} com tipo de expressãoSystem.Linq.Expressions.Expression<System.Func<Gift,System.DateTime>>

Eu não tenho ideia de como diagnosticar qual dos quatro parâmetros está incorreto, estou pensando que um dos tipos de expressão pode estar incorreto ...

questionAnswers(1)

yourAnswerToTheQuestion