2009-10-22 3 views
0

ASP.NET의 GridView를 사용하여 엔티티 목록을 정렬하려고하지만 예제를 사용하여 작동하지 않을 수 있습니다. 내 엔티티에 Name이라는 속성이 있으며 지정된 열 (sortexpression이 비어 있으면 Name 열)을 기준으로 정렬하려고합니다.엔티티 프레임 워크 및 정렬

public static List<Product> GetProducts(int startRowIndex, int maximumRows, string sortExpression) { 
    using(var context = new ShopEntities()) { 
     var products = context.Products; 
     products.OrderBy("it."+(string.IsNullOrEmpty(sortExpression) ? "Name" : sortExpression)) 
             .Skip(startRowIndex) 
             .Take(maximumRows); 
     return products.ToList(); 
    } 
} 

나는 그것을 분류 할 수 없다. 유일한 옵션은 엔티티의 모든 속성에 대해 속성 이름을 바꾸고 람다를 사용하는 것입니다.

답변

2

OrderBy는 표현식을 변경하지 않습니다. 코드가 무시하는 표현식을 반환합니다. 코드를 다음으로 변경하십시오.

products = products.OrderBy("it."+ //... 
+0

감사합니다. 내가 확신 할 수없는 또 다른 점은 접두어 "it"입니다. 그것은 가장 일반적인 단어 중 하나이기 때문에 그것을 구글로 어렵지만, 단지 엔티티를 참조합니까? – Echilon

+0

예, "it"은 엔티티입니다. Query Builder 메소드에만 해당됩니다. –