Sdílet prostřednictvím


Einfaches Adressierungsschema für Daten mit URIs (ADO.NET Data Services-Framework)

Das ADO.NET Data Services-Framework implementiert ein Datenadressierungsschema, das mithilfe von URIs Daten sucht. Die Entitätsbeziehungsmuster des Entity Data Model werden verwendet, um Daten als Entitäten und Zuordnungen zu Entitäten in Entitätenmengen logisch gruppiert zu organisieren. Diese Muster finden ihre Entsprechung im URI-Adressierungsschema.

Um das System exemplarisch zu beschreiben, wird in den folgenden Beispielen ein Kundennachverfolgungsdienst verwendet. Alle Customer-Entitäten werden vom folgenden URI berücksichtigt.

http://myserver/data.svc/Customers

Das /Customers-Segment des URI verweist auf die in den Metadaten angegebene Customer-Entitätenmenge. Die ADO.NET Data Services-Framework-Metadaten entsprechen dem konzeptionellen Schema im EDM. Die Entitätenmenge Customers beinhaltet logisch alle Instanzen des Entitätstyps Customer.

In dieser Syntax ruft der folgende URI eine einzelne Customer-Entität ab, deren Schlüsseleigenschaft (entsprechend der Definition in den Metadaten) den Wert "ALFKI" aufweist.

http://myserver/data.svc/Customers('ALFKI')

Entitäten und Zuordnungen

Metadaten beschreiben die Struktur von Entitätstypen und die Zuordnungen zwischen Entitäten. Im ADO.NET Data Services-Framework werden diese Informationen genutzt, um einen Mechanismus für das Durchlaufen von Zuordnungen bereitzustellen. Wenn beispielsweise jedem der Customer-Entitäten im Datendienst eine Menge von Orders zugeordnet ist, entspricht folgender URI dem Bestellungssatz, der dem Customer zugeordnet ist, dessen Primärschlüssel den Wert "ALFKI" aufweist.

http://myserver/data.svc/Customers('ALFKI')/Orders

Die Eigenschaften einer Customer-Entität können einzeln adressiert werden. So entspricht beispielsweise folgender URI dem ContactName der Customer-Entität mit dem Schlüssel "ALFKI":

http://myserver/data.svc/Customers('ALFKI')/ContactName

Zusätzlich zu schlüsselbasierten Abfragen können in das Adressierungsschema auch einfache Prädikate eingeschlossen werden. Dadurch können Datensätze anhand der Eigenschaften von Entitäten ausgewählt werden, z. B. als Menge der derzeit aktiven Orders für den Customer mit dem Schlüssel "ALFKI". Diese Daten werden mit folgendem URI abgerufen:

http://myserver/data.svc/Customers('ALFKI')/Orders?$filter=Active eq true

Der im angeführten Beispiel verwendete Operator $filter kann auch im Zusammenhang mit Zeichenfolgen-, mathematischen oder Datumsfunktionen verwendet werden. Folgender URI entspricht der Menge der im Jahr 2007 für den Customer "ALFKI" vorgenommenen Bestellungen:

http://myserver/data.svc/Customers('ALFKI')/Orders?$filter=
Active eq true and (year(OrderDate) eq 2007)

Wenn die Orders über andere verbundene Entitäten verfügen, kann der URI den Drilldown in der Zuordnungsgrafik und den Durchlaufszuordnungen fortführen und die entstehenden Mengen filtern.

Darstellungssteuerungsinformationen

Die ADO.NET Data Services-URIs können in der Abfragezeichenfolge auch Informationen enthalten, mit denen Daten sortiert werden. Zu den üblichen Anforderungen von Internetanwendungen gehören das Paging von Daten sowie das Sortieren nach Eigenschaften. Mithilfe des folgenden URI werden Orders-Entitäten nach Datum sortiert:

http://myserver/data.svc/Customers('ALFKI')/Orders?$filter=
Active eq true&$orderby=OrderDate

Das Paging der Ergebnisse erfolgt durch Kombinieren der Parameter $skip und $top. In einer Kundenliste werden die Nummern 31 - 41 mithilfe des folgenden URI abgerufen:

http://myserver/data.svc/Customers?$skip=30&$top=10 

GET, PUT, POST und DELETE

Die Syntax der vorherigen Beispiele wird in einer HTTP GET-Anforderung verwendet, um Entitäten und Auflistungen von Entitäten abzurufen. Um Entitäten oder Beziehungen zu aktualisieren, wird in ADO.NET Data Services die HTTP PUT-Syntax verwendet. Entsprechend wird die HTTP POST-Syntax verwendet, um neue Entitäten zu erstellen. Mit der HTTP DELETE-Syntax werden Entitäten aus dem Speicher gelöscht. Weitere Informationen finden Sie unter Clientanwendungen von ADO.NET Data Services.

Siehe auch

Konzepte

REST-Dienste und -Semantik (ADO.NET Data Services-Framework)
Allgemeine HTTP-Anforderungen (ADO.NET Data Services-Framework)

Weitere Ressourcen

ADO.NET Entity Framework