완벽하게 작동하지만 한 가지 예외가있는 LINQ-Provider를 작성했습니다. LINQ-Query를 ODATA-URL 표준으로 변환합니다.ParameterExpression을 실제 식으로 해결하십시오.
나는 다음과 같은 LINQ 문이있는 경우 :
.Select(x => x.Name.ToLower()).OrderByDescending(x => x)
를 내가 표현 방문자와 식 트리를 방문하고 때, 나는 ParameterExpression입니다 형 식 부분 (OrderByDescending)를 얻을 수 있습니다.
내 질문은 지금 : 어떻게 선택 x.Name.ToLower() 표현에받을 수 있나요? 내가
$orderby=tolower(Name) desc
// 편집 해 orderBy 문을 변환 할 수 있도록 : 다른 말로 : 을 나는 ParameterExpression {X => X}를 가지고있다. ?
1) LINQ 표현은 위의 의미하지 않는다/엔티티 $ ORDERBY = :이 표현은 {X => x.Name.ToLower()} 코드와
그래서이 결합 할 기회가 없다?.OrderByDescending (x => x.Name.ToLower())를 사용할 때 슬프다. (x => x.Name.ToLower()) 모두 잘 작동한다. –
어떻게 OData로 변환하겠습니까? 동일한 문제가 있습니까? OData에는 Select (x => x.Name.ToLower())와 동일한 작업을 수행 할 수있는 구문이 없습니다. 결합은 가능하지만 방문객은 OrderBy와 Select를 동시에보고 둘을 하나의 작업으로 결합 할 수 있어야합니다. 이 두 단계를 하나의 단계에서 다른 단계로 쉽게 전송할 수 없으므로이를 별도의 단계로 처리하는 것이 문제입니다 (느슨한 의미). –