Details der WCF Data Services-Protokollimplementierung
Details der OData-Protokollimplementierung
Der Open Data Protocol (OData) erfordert, dass ein Datendienst, der das Protokoll implementiert, einen bestimmten minimalen Satz von Funktionalitäten bereitstellt. Diese Funktionalitäten werden in den Protokolldokumenten mit den Begriffen "sollte" und "muss" beschrieben. Andere optionale Funktionalitäten werden mit dem Begriff "kann" beschrieben. In diesem Thema werden diese optionalen Funktionalitäten, die aktuell nicht von WCF Data Services implementiert sind, beschrieben. Weitere Informationen finden Sie unter OData Protocol Documentation.
Unterstützung für das Format Abfrageoption
Das OData-Protokoll unterstützt sowohl JavaScript Notation (JSON)- als auch Atom-Feeds, und OData stellt die $format-Systemabfrageoption bereit, um einem Client zu ermöglichen, das Format des Antwortfeeds anzufordern. Diese Systemabfrageoption (falls sie vom Datendienst unterstützt wird) muss den Wert des Accept-Headers der Anforderung überschreiben. WCF Data Services unterstützt das Zurückgeben von JSON- und Atom-Feeds. Die Standardimplementierung unterstützt jedoch die $format-Abfrageoption nicht und verwendet nur den Wert des Accept-Headers, um das Format der Antwort zu bestimmen. Es gibt Situationen, in denen der Datendienst möglicherweise die $format-Abfrageoption unterstützen muss, z. B., wenn Clients den Accept-Header nicht festlegen können. Um diese Szenarien zu unterstützen, müssen Sie den Datendienst erweitern, um diese Option im URI zu verwenden. Sie können dem Datendienst diese Funktionalität hinzufügen, indem Sie das Beispielprojekt JSONP- und URL-gesteuerte Formatunterstützung für ADO.NET Data Services von der MSDN Code Gallery-Website herunterladen und es zum Datendienstprojekt hinzufügen. In diesem Beispiel wird die $format-Abfrageoption entfernt und der Accept-Header in application/json geändert. Wenn Sie das Beispielprojekt einschließen und das JSONPSupportBehaviorAttribute zur Datendienstklasse hinzuzufügen, ermöglicht es dem Dienst, die $format-Abfrageoption $format=json zu verwenden. Eine weitere Anpassung dieses Beispielprojekts ist erforderlich, um auch $format=atom oder andere benutzerdefinierte Formate zu verwenden.
WCF Data Services - Verhaltensweisen
Die folgenden WCF Data Services-Verhaltensweisen werden nicht explizit vom OData-Protokoll definiert:
Standardsortierverhalten
Wenn eine Abfrageanforderung, die an den Datendienst gesendet wird, eine $top- oder $skip-Systemabfrageoption einschließt und die $orderby-Systemabfrageoption nicht einschließt, wird der zurückgegebene Feed nach den Schlüsseleigenschaften in aufsteigender Reihenfolge sortiert. Das liegt daran, dass die Reihenfolge erforderlich ist, um das richtige Paging von Ergebnissen sicherzustellen. Hierzu fügt der Datendienst der Abfrage einen Reihenfolgenausdruck hinzu. Dieses Verhalten tritt auch auf, wenn servergesteuertes Paging im Datendienst aktiviert wird. Weitere Informationen finden Sie in Konfigurieren des Datendiensts (WCF Data Services). Um die Reihenfolge des zurückgegebenen Feeds zu steuern, sollten Sie $orderby in den Abfrage-URI einschließen.