2010-05-10 4 views
1

이 질문에 대한 답이나 내가하는 일을 수행하는 방법에 대한 좋은 예를 찾을 수 없습니다. 나는 그것이 게시되었거나 어딘가에 설명되어 있다고 확신하지만, 내가 필요한 정확한 해결책을 찾는데 어려움을 겪고있다.활성 레코드를 사용하여 찾기를 사용하여 페이징

Subsonic 3.0.0.4에서 ActiveRecord를 사용하고 있습니다. 내가

recordset = VehicleModel.Find(x => x.Model.StartsWith(SearchText)); 

처럼 뭔가를 할 때 나는 내가 너무 많은 레코드를 반환 할 때까지 VehicleModel 객체의 IList의 (또는 그 이상 단순히 레코드)이 괜찮 다시 얻을. 나는 또한 반환 된 레코드 세트를 주문할 수 없다. (그리드가 잘할 것이지만 레코드가 너무 많으면 너무 느릴 것이다.) Find가 IList를 반환하는 것은 내가 직접 실행할 수있는 것이별로 없다는 것입니다. (다시 한번 간단한 것을 간과 할 수 있으므로 제발 죽이지 마십시오.)

제 질문은 누군가 제가 위와 같은 데이터를 찾는 방법을 설명하고, 정렬하고, 크기가 n 인 페이지의 데이터 페이지를 얻을 수 있습니까?

내가 잘못 생각하고 있습니까? 나는 옳은 길에 가깝다. 이 currentPage를 가정 한 것입니다

답변

0
int currentPage = x 
int pageSize = n 
recordset = VehicleModel.Find(x => x.Model.StartsWith(SearchText)).Skip(currentPage x PageSize).Take(PageSize); 

은 currentPage는 1에서 시작하는 경우 0
에서 시작하여 다음의 Skip((currentPage - 1) x PageSize)

+0

난에 입력합니다. After SearchText)) 옵션으로 건너 뛰지 않고 컴파일 할 때 오류가 발생합니다 (오류 'System.Collections.Generic.IList '에 '건너 뛰기'에 대한 정의가없고 'System.Collections.Generic.IList '형식의 첫 번째 인수를 수락하는 확장 메서드 '건너 뛰기'가 없습니다 (지시문이나 어셈블리 참조가 누락 되었습니까?) 초기 질문은 IList를 반환합니다. 아마도 내가 사용하고있는 ActiveRecord.tt 파일이 더 오래되었거나 다른 것이 없을 수도 있습니다. –

+0

저는 바보입니다. 사용하는 System.Linq가 없습니다. 도와 주셔서 감사합니다. 더 많은 수면과 적은 커피가 필요하다는 것을 깨닫게됩니다. –

+0

코드를 다시 보면 이제는 아음속 GetPaged 메서드를 대신 사용할 수 있습니다. – spaceman

관련 문제