2015-02-05 3 views
0

여보세요, 을 사용하여 진수를 가진 문자열 열을 정렬하는 그것의 소수 값 예를 들어 : 1.11 봉투 문서 - 클래스 I 1.12 봉투 문서 - 클래스 II 1.13 봉투 문서 - 클래스 III 1.22 기하학적 레이아웃 - 레벨 2 1.51 공공 참여 - 레벨 1 10.1 사진 측량 매핑 10.21 항공 사진 난 ... 1.11으로 이것을 반환해야내가 문자열 열이 LINQ

1.12 ... 2.11 ... 2.12 ... .etc 지금이 열에 orderby 절만 사용하고 있습니다. 여기서 도와주세요.

var progTypes = (from mnuit in entities.MENU_ITEM 
            join mnu in entities.MENU on mnuit.MENU_ID equals mnu.MENU_ID 
            join prog in entities.PROG on mnuit.MENU_ITEM_ID equals prog.PROG_TYP_ID 
            where (mnuit.MENU_ITEM_CD == programmodel.selectedProgram && mnu.MENU_NM == "PROG_TYP_ID" && prog.PROG_ACTV_FLG == programmodel.selectedProgStatus) 
            select new ProgramModel.lstProgTypes 
            { 
             PROG_ID = prog.PROG_ID, 
             PROG_NBR = prog.PROG_NBR, 
             PROG_NM = prog.PROG_NM, 
             PROG_MAX_AMT = prog.PROG_MAX_AMT, 
             PROG_START_DT = prog.PROG_START_DT, 
             PROG_END_DT = prog.PROG_END_DT 
            }).OrderBy(m=>m.PROG_NM).ToList();            
        progModel.mProgTypes = progTypes; 

답변

0

글쎄, 그것은 빠른 아니지만, 당신은 많은 양의 데이터가있는 경우가

.OrderBy(m=> Decimal.Parse(m.PROG_NM)) 

을 시도 할 수 있습니다, 당신은 진수의 유형이 열에서 만든 인덱스 컬럼이 필요합니다.

+0

나는이 사용하려고했지만 "LINQ to Entities는 'System.Decimal Parse (System.String)'메서드를 인식하지 못하고이 메서드를 저장소 식으로 변환 할 수 없습니다."라는 오류가 발생합니다. – Rani

+0

'Decimal.Parse (m.PROG_NM)'은 SQL 문이 아닙니다 (LINQ to Entities에서는 쿼리를 SQL 쿼리로 변환 할 수 있어야합니다). '.ToList()'를 먼저 호출하면, .OrderBy()는 –

+0

을 사용합니다 .ToList(). OrderBy (m => m.PROG_NM); 이게 효과가 없었어, 다른 방법으로 내가 이룰 수있어. – Rani