문자열을 정수로 정렬하기 위해 속성의 길이와 속성 순으로 Linq 쿼리의 결과를 정렬하려고하지만 생성 된 SQL 기대했던대로 주문하지 않습니다.Linq OrderBy 문자열 속성 길이가 선택 목록에 있어야합니다
내가, 그것을 아래로 필터링, 여러 테이블을 조인과 함께 밖으로 DTO를 선택하고 :
다음query = basequery.Select(s => new HeadersDTO
{
headerid = s.Header.id,
orderno = s.Header.orderno,
customer = s.Header.customer,
dateoforder = s.Header.dateoforder,
consignee = s.Location.name,
city = s.Location.name,
state = s.Location.state
}).Distinct();
주문하려고는 정상적인 방법으로 문자열 정렬이 여전히 주문을
query = query.OrderByDescending(x => x.orderno.Length).ThenByDescending(x => x.orderno)
.Skip(() => offset).Take(() => criteria.per_page);
s.Header.orderno
에 의해 첫 번째 문자가 우선합니다.
하지만 내가 x.orderno.Length
을 선택하면 자신의 속성이 나옵니다.
query = basequery.Select(s => new HeadersDTO
{
ordernolength = s.Header.orderno.Length <---- added this
headerid = s.Header.id,
orderno = s.Header.orderno,
customer = s.Header.customer,
dateoforder = s.Header.dateoforder,
consignee = s.Location.name,
city = s.Location.name,
state = s.Location.state
}).Distinct();
query = query.OrderByDescending(x => x.ordernolength).ThenByDescending(x => x.orderno)
.Skip(() => offset).Take(() => criteria.per_page);
내가 선택 목록에서 새 속성을 만들 필요가 없습니다 곳이 할 수있는 방법이 있나요 ? 필요한 경우 더 많은 정보를 추가 할 수 있습니다.
'query.OrderByDescending (X =>에서 Int32.Parse (x.orderno))' –
이 숫자를 기반으로 문자열이 orderNo가 도움이 : 다음은 이에 대한 예입니다? –
@SamAxe 이전에 본 적이 있지만 'Linq To Entities가 Int32 Parse' 오류를 인식하지 못합니다. –