Ich bin auf der Suche nach einer Möglichkeit zum Abrufen der "umgebenden" Zeilen in einer NHibernate-Abfrage mit einem Primärschlüssel und einer Sortierreihenfolge?Holen Sie "umgebende" Zeilen in NHibernate Abfrage
z. Ich habe eine Tabelle mit Protokolleinträgen und möchte den Eintrag mit Primärschlüssel 4242 und den vorherigen 5 Einträgen sowie die folgenden 5 Einträge nach Datum geordnet anzeigen (es besteht keine direkte Beziehung zwischen Datum und Primärschlüssel). Solch eine Abfrage sollte insgesamt 11 Zeilen zurückgeben (solange wir nicht nahe an einem der beiden Enden sind).
Die Log-Entry-Tabelle kann riesig sein und alle abrufen, um herauszufinden, ist nicht möglich.
Gibt es ein Konzept wie die Zeilennummer, das innerhalb von NHibernate verwendet werden kann? Die zugrunde liegende Datenbank wird entweder SQlite oder Microsoft SQL Server sein.
Edited Added Probe
Daten Stellen Sie sich vor, wie die folgenden:
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
Wenn Sie die Eingabe mit Primärschlüssel 4242 anfordernden wir sollten die Zeilen 1237, 1238 und 4239 bis 4247 Die Bestellung erhalten ist nach Zeit, Id.
Ist es möglich, die Einträge in einer einzigen Abfrage (die natürlich Unterabfragen enthalten kann) abrufen? Die Zeit ist eine nicht eindeutige Spalte, daher haben mehrere Einträge den gleichen Wert und in diesem Beispiel ist es nicht möglich, die Auflösung so zu ändern, dass sie einzigartig ist!
Ich denke, dass dies so lange arbeiten wie die Reihenfolge auf einer Säule, die eindeutigen Werte enthält. Es könnte sein, dass ich nach verschiedenen Spalten sortieren muss, damit eine Sequenzspalte nicht funktioniert. Ich war auf der Suche nach einer Lösung für rownum für Situationen, in denen ich auf nicht eindeutige Spalten sortieren musste, so dass mehr Ideen mehr als willkommen sind :-) – HakonB
Ok, verfeinert es. Siehe den neuen Abschnitt. –