2010-04-06 2 views
1

동적 linq을 사용하여 MVC의 일반 JqGrid를 처리하기위한 일반 클래스를 만들 때 코드 속성 정렬을 제외하고 모두 잘 작동합니다 (검색, 페이지 매김 등). 나는 즉시 내가 정렬이 작동하지 않습니다 만든 속성이 그대로 있지만, 데이터를 정렬하기 위해 DB를 타격하고 때 정렬이 잘 작동 예를 들어, 나는 다음과 같은 동적 Linq에Order by 속성 from dynamic linq

 items = items 
      .OrderBy(string.Format("{0} {1}", sidx, sord)) 
      .Skip(pageIndex * pageSize) 
      .Take(pageSize); 
를 실행하고

public partial class tblStockOrder 
{ 
    public string approved 
    { 
     get 
     { 
      return approved_id == null ? "" : "Approved"; 
     } 
    } 
} 

여기서 sidx 등은 jquery에 의해 전달 된 문자열입니다.

기본적으로 어떤 속성은 db에서 가져 오는 반면 다른 속성은 올바른 이름 지정이 아닌 코드 속성이 될 수있는 경우를 처리하는 최상의 솔루션입니다. 이 모든 것을 리플렉션을 사용하여 코드에서 처리 할 수 ​​있지만 수천 개의 레코드를 가져 와서 리플렉션을 사용하여 코드를 정렬하지 않고 가능한 한 많은 검색/정렬을 처리하는 DB를 분명히 좋아할 것입니다.

답변

0

데이터베이스에있는 일부 메모리 인 레코드를 만들려고 할 때 Computed 클래스는 물론 작동하지 않습니다.

당신은, 그러나 LINQ 쿼리의 기능, 예를 지정하여 데이터베이스에 동일하게 계산할 수 있습니다 : (! X => x.approved_id = NULL) 항목 = 항목 .OrderBy을 .Skip (pageIndex * pageSize가) . Take (pageSize);