Je cherche un moyen de récupérer les lignes "environnantes" dans une requête NHibernate avec une clé primaire et un ordre de tri?Récupère les lignes "environnantes" dans la requête NHibernate
E.g. J'ai une table avec les entrées du journal et je veux afficher l'entrée avec la clé primaire 4242 et les 5 entrées précédentes ainsi que les 5 entrées suivantes classées par date (il n'y a pas de relation directe entre la date et la clé primaire). Une telle requête devrait renvoyer 11 lignes au total (tant que nous ne sommes pas proches de l'une ou l'autre fin).
La table d'entrée de journal peut être très volumineuse et il n'est pas possible de tout extraire pour la déterminer.
Existe-t-il un concept tel que le numéro de ligne pouvant être utilisé depuis NHibernate? La base de données sous-jacente sera SQlite ou Microsoft SQL Server.
Edité Ajouté échantillon
Imaginez des données telles que les suivantes:
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
Lorsque vous demandez l'entrée avec 4242 clé primaire, nous devrions obtenir les lignes 1237, 1238 et 4239 à 4247. L'ordre est par Time, Id.
Est-il possible de récupérer les entrées dans une seule requête (qui peut évidemment inclure des sous-requêtes)? Time est une colonne non unique, donc plusieurs entrées ont la même valeur et dans cet exemple il n'est pas possible de changer la résolution d'une manière qui la rend unique!
Je suppose que cela fonctionnera aussi longtemps que la commande est sur une colonne qui contient des valeurs uniques. Je pourrais avoir besoin de trier sur différentes colonnes, donc garder une colonne de séquence ne fonctionnera pas. Je cherchais une solution de rownum pour les situations où j'avais besoin de trier des colonnes non-uniques donc plus d'idées sont plus que bienvenues :-) – HakonB
Ok, raffiné. Voir la nouvelle section. –