IQueryable 객체에 해당 OrderModule이 표현식 트리에 적용되어 있는지 확인할 수있는 방법이 있습니까?Linq IQueryable에 적용된 주문이 있는지 확인하십시오.
내가 가진 시나리오는 그리드 컨트롤이 페이징을 활성화하고 열마다 정렬한다는 것입니다. 그러나 기본적으로 정렬이 적용되지 않으므로이 경우 Linq는 행 수를 엄청나게 엄선합니다. 따라서 모든 시나리오에서 주문을 제공해야하지만 기본 키로 기본 순서 만 적용해야합니다 다른 순서가 지정되어 있지 않은 경우.
이렇게 가능합니까?
내가 생각할 수있는 유일한 방법은 orderby를 수행하고 순서가 동일한 지 확인하거나 주문할 때 부울을 설정하는 것입니다. 더 짧은 방법을 편집하면 요소를 비교하여 주문한 것인지 확인할 수 있습니다. – Sayse
어떻게 될까요? orderby (id)는 엄청난 선택을 도와 줍니까? – usr
@usr Linq2Sql은 기본 쿼리에 명시적인 orderby 기준이 적용되지 않은 경우 SELECT ROW_NUMBER() OVER (ORDER BY <모든 단일 열)에서 ALL COLUMNS를 사용합니다. 그래서 예를 들어, 순서없이 DB를 실행하는 데 30 초가 걸리지 만 orderby가 적용될 때 1 초 미만이 소요되는 쿼리가 있습니다. 따라서 명시 적으로 기본 키를 orderby로 설정하면 그리드 정렬 식에서 자동 orderby 세트가없는 경우 심하게 구성된 Linq 쿼리로 인해 많은 시간을 낭비하지 않을 수 있습니다. – Grofit