2011-10-04 2 views
3

Albahari의 PredicateBuilder 및 LINQKit을 사용하여 선택적 매개 변수 인 선택적 OrderBy, 선택적 Skip() 및 선택적 Take()가있는 LINQ 쿼리를 구성하고 있습니다.IQueryable PredicateBuilder 및 Entity Framework가있는 OrderBy

PredicateBuilder를 사용하면 선택적 매개 변수를 쉽게 만들 수 있지만 다른 요소에는 문제가 있습니다.

이 내가 이런 일을하고 싶지

var query = this.MyContext.Things.AsExpandable.Where(predicate).OrderBy(s => s.Name); 
return query.ToList(); 

작동하므로 나는 경우에있는 OrderBy을 포장 할 수 있습니다 문제를 단순화합니다. 그러나 작동하지 않습니다 결과는 이름 순서대로되지 않습니다.

var query = this.MyContext.Things.AsExpandable().Where(predicate); 
query.OrderBy(s => s.Name); 
return query.ToList(); 

누군가 올바른 방향으로 나를 가리킬 수 있습니까? 저는 NHibernate로 변환되었고 여전히 LINQ를 이해하고 있습니다.

답변

7

당신은 당신의 query 변수에 재 할당을 누락 - (다른 모든 표준 쿼리 연산자와 동일) OrderBy() 새로운 IQueryable<T> 반환

query = query.OrderBy(s => s.Name); 
+0

감사합니다! 두뇌가 다른 일을하는 방식 (예 : NHibernate)에 머물러있을 때 간단한 것을 놓치기 쉽습니다. – NickH

관련 문제