主キーとソート順を指定して、NHibernate クエリで「周囲の」行を取得する方法を探していますか?
たとえば、ログ エントリを含むテーブルがあり、主キー 4242 のエントリと前の 5 つのエントリ、および次の 5 つのエントリを日付順に並べて表示したい (日付と主キーの間に直接的な関係はありません)。このようなクエリは、合計で 11 行を返す必要があります (どちらかの端に近づかない限り)。
ログ エントリ テーブルは巨大になる可能性があり、すべてを取得して把握することはできません。
NHibernate 内から使用できる行番号などの概念はありますか? 基盤となるデータベースは、SQLite または Microsoft SQL Server のいずれかになります。
編集追加サンプル
次のようなデータを想像してください。
Id Time
4237 10:00
4238 10:00
1236 10:01
1237 10:01
1238 10:02
4239 10:03
4240 10:04
4241 10:04
4242 10:04 <-- requested "center" row
4243 10:04
4244 10:05
4245 10:06
4246 10:07
4247 10:08
主キー 4242 のエントリを要求すると、行 1237、1238、および 4239 ~ 4247 を取得する必要があります。順序は時間、ID 順です。
単一のクエリ (明らかにサブクエリを含めることができます) でエントリを取得することは可能ですか? 時間は一意でない列であるため、複数のエントリが同じ値を持ちます。この例では、一意になるように解像度を変更することはできません!