ダッパページング

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にアクセスできるほど幸運な場合は、光沢のある新しいOFFSETおよびFETCHキーワードを使用できます。次のクエリは20レコードをスキップし、次の5レコードを返します。

SELECT * FROM [Posts]
ORDER BY [InsertDate]
OFFSET 20 ROWS
FETCH NEXT 5 ROWS ONLY

詳細については、 http://msdn.microsoft.com/en-us/library/ms188385(v=sql.110).aspx#Offset参照してください。

また、Massiveのやり方をコピーしてIDbConnectionの独自の拡張メソッドを作成するだけでも簡単です。マッシブのコードです

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
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow