날씬한. 페이징

dapper paging

문제

Dapper ORM을 시도하고 Posts 테이블을 쿼리하고 있습니다.

하지만 페이징 결과를 얻고 싶습니다 ...

1 - 어떻게해야합니까? 이 일을 도우미가 아닌가요?

2 - Dapper 쿼리가 IQueryable을 반환 할 수 있습니까?

고마워, 미구엘

수락 된 답변

1) Dapper에는 페이지 매김 기능이 내장되어 있지 않습니다. 그러나 쿼리에서 직접 구현하기는 어렵지 않습니다. 예:

SELECT  *
FROM    ( SELECT    ROW_NUMBER() OVER ( ORDER BY InsertDate) AS RowNum, *
          FROM      Posts
          WHERE     InsertDate >= '1900-01-01'
        ) AS result
WHERE   RowNum >= 1 // *your pagination parameters
    AND RowNum < 20  //*
ORDER BY RowNum

SQL Server 2005 이상 필요

2) Dapper는 IEnumerable<T> 반환합니다.


인기 답변

데이터베이스 또는 버전을 지정하지 않았습니다. 새로운 SQL Server 2012를 사용할 수 있고 MSDN에 액세스 할 수있을만큼 운이 좋다면 반짝이는 새 OFFSETFETCH 키워드를 사용할 수 있습니다. 다음 쿼리는 20 개의 레코드를 건너 뛰고 다음 5 개를 반환합니다.

var query = string.Format("SELECT {0} FROM (SELECT ROW_NUMBER() OVER (ORDER BY {2}) AS Row, {0} FROM {3} {4}) AS Paged ", columns, pageSize, orderBy, TableName, where);

자세한 내용은 http://msdn.microsoft.com/en-us/library/ms188385(v=sql.110).aspx#Offset 을 확인하십시오.

또한 Massive의 방식을 복사하고 IDbConnection에 대한 고유 한 확장 방법을 작성하기는 쉽습니다. Massive의 코드가 있습니다.

var query = string.Format("SELECT {0} FROM (SELECT ROW_NUMBER() OVER (ORDER BY {2}) AS Row, {0} FROM {3} {4}) AS Paged ", columns, pageSize, orderBy, TableName, where);



아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.