Eine Sicht liefert beim Blättern doppelte oder fehlende Zeilen
Wer eine Sicht Fenster für Fenster liest (Folgeverweise, $skip), findet manche Zeilen zweimal und
andere gar nicht.
Umgebung
Mengen, die der Dienst ohne Schlüssel anbietet: Tabellen ohne eindeutigen Schlüssel und Sichten,
für die SQL Server keinen Schlüssel nennt, den die Sicht vollständig zeigt; jede Oberfläche. Ob eine
Menge einen Schlüssel hat, zeigt $metadata (<Key>).
Ursache
Ein Fenster mit Versatz ist nur über einer festen Ordnung wiederholbar. Der Dienst ergänzt eine Ersatzsortierung nur aus dem Schlüssel der Menge (siehe OData: Schlüssel); ohne Schlüssel gibt es keine, und eine erfundene Sortierung sähe wie eine Zusage aus, ohne eine zu sein. Den Folgeverweis bietet der Dienst trotzdem an – ohne ihn hörte der Aufrufer nach dem ersten Fenster sicher auf, mit ihm nur möglicherweise ungenau.
Behebung
- Geben Sie
$orderbyüber Spalten an, die zusammen eindeutig sind. - Oder lesen Sie in einem Fenster, wenn die Menge unter
Limits:MaxTopbleibt.
Prüfung
Die Summe der gelesenen Zeilen gleicht $count, und keine Schlüsselkombination kommt doppelt vor.
Verwandte Themen
- HTTP: OData v4 (Referenz) – Schlüssel einer Sicht