クライアント側でページごとに 20 個のアイテムを表示するテーブルに 10,000 個のアイテムがあります (アイテムはさらにフィルター処理できます)
すべての要素の中からアイテムを見つける必要があります。次に、要素が配置されているページ番号を取得し、クライアントでそのページに移動して選択する必要があります
私の前の質問は Get item index (rownum)です。
しかし、私はそれについて答えがありませんでした。
おそらく、すべてのテーブル データを取得せずにアイテムが配置されているページ番号を見つける別の方法がありますか?
私はLinqをNhibernate、Database - Oracleに使用しています。
編集:返信ありがとうございますが、それほど簡単ではありません
例:
テーブルdbには、
ID NAME
1 Item1
2
3
4
5
20
31
..... ....
5000
クライアント側では、データをフィルタリングしました
query = query.Where(...).Where(...).Where(...).OrderBy(...)
そして結果を得た
ID ROW_NUM_IN_QUERY
4 1
300 2
2 3
31 4
..... ....
402 50
800 51
ID
順序が異なる可能性があるため、クエリ内のフィールドまたは別のフィールドにリンクできません
単純な SQL で rownum を取得できます。しかし、Linq to NHibernate ではそれができません。テーブルからデータを完全に取得するIndexOf
などの機能はありません。RowNumber
このバリアント:
var indexed = myDataSource.Select( (x,n) => new { Value = x, RowNumber = n } );
Not suported exception during execute query