Dettagli di implementazione del protocollo WCF Data ServicesWCF Data Services Protocol Implementation Details

Dettagli di implementazione del protocollo ODataOData Protocol Implementation Details

Protocollo OData (Open Data)Open Data Protocol (OData) richiede che un servizio dati che implementa il protocollo fornisca un determinato set di funzionalità minimo.The Protocollo OData (Open Data)Open Data Protocol (OData) requires that a data service that implements the protocol provide a certain minimum set of functionalities. Queste funzionalità sono descritte nei documenti del protocollo in termini di "deve" e "deve".These functionalities are described in the protocol documents in terms of "should" and "must." Altre funzionalità facoltative vengono descritte in termini di "potrebbe essere".Other optional functionality is described in terms of "may." In questo argomento vengono descritte tali funzionalità facoltative che non sono attualmente implementate da WCF Data ServicesWCF Data Services.This topic describes these optional functionalities that are not currently implemented by WCF Data ServicesWCF Data Services. Per ulteriori informazioni, vedere documentazione del protocollo OData.For more information, see OData Protocol Documentation.

Supporto dell'opzione query $formatSupport for the $format Query Option

Il protocollo ODataOData supporta i feed JSON (JavaScript Notation) e Atom e ODataOData fornisce l'opzione query di sistema $format per consentire a un client di richiedere il formato del feed di risposta.The ODataOData protocol supports both JavaScript Notation (JSON) and Atom feeds, and ODataOData provides the $format system query option to allow a client to request the format of the response feed. Questa opzione query di sistema, se supportata dal servizio dati, deve eseguire l'override del valore dell'intestazione Accept della richiesta.This system query option, if supported by the data service, must override the value of the Accept header of the request. WCF Data ServicesWCF Data Services supporta la restituzione dei feed JSON e Atom. supports returning both JSON and Atom feeds. Tuttavia, l'implementazione predefinita non supporta l'opzione query $format e usa solo il valore dell'intestazione Accept per determinare il formato della risposta.However, the default implementation does not support the $format query option and uses only the value of the Accept header to determine the format of the response. In alcuni casi è necessario che il servizio dati supporti l'opzione query $format, ad esempio quando i client non possono impostare l'intestazione Accept.There are cases when your data service may need to support the $format query option, such as when clients cannot set the Accept header. Per supportare questi scenari, è necessario estendere il servizio dati per gestire questa opzione nell'URI.To support these scenarios, you must extend your data service to handle this option in the URI. È possibile aggiungere questa funzionalità al servizio dati scaricando il formato JSONP e URL inclusi il supporto per ADO.NET Data Services progetto di esempio dal sito web MSDN Code Gallery e aggiungerlo al progetto di servizio dati.You can add this functionality to your data service by downloading the JSONP and URL-controlled format support for ADO.NET Data Services sample project from the MSDN Code Gallery web site and adding it to your data service project. Questo esempio rimuove l'opzione query $format e imposta l'intestazione Accept su application/json.This sample removes the $format query option and changes the Accept header to application/json. Quando si include il progetto di esempio aggiungendo JSONPSupportBehaviorAttribute alla classe del servizio dati, si consente al servizio di gestire l'opzione query $format``$format=json.When you include the sample project and adding the JSONPSupportBehaviorAttribute to your data service class enables the service to handle the $format query option $format=json. È necessario personalizzare ulteriormente questo progetto di esempio per gestire anche $format=atom o gli altri formati personalizzati.Further customization of this sample project is required to also handle $format=atom or other custom formats.

Comportamenti di WCF Data ServicesWCF Data Services Behaviors

I comportamenti di WCF Data ServicesWCF Data Services seguenti non sono definiti in modo esplicito dal protocollo ODataOData:The following WCF Data ServicesWCF Data Services behaviors are not explicitly defined by the ODataOData protocol:

Comportamento di ordinamento predefinitoDefault Sorting Behavior

Quando una richiesta di query inviata al servizio dati include un'opzione query di sistema $top o $skip e non include l'opzione query di sistema $orderby, il feed restituito viene ordinato in base alle proprietà chiave in ordine crescente,When a query request that is sent to the data service includes a $top or $skip system query option and does not include the $orderby system query option, the returned feed is sorted by the key properties, in ascending order. poiché l'ordinamento è necessario per garantire il paging corretto dei risultati.This is because ordering is required to ensure the correct paging of results. A tale scopo, il servizio dati aggiunge un'espressione di ordinamento alla query.To do this, the data service adds an ordering expression to the query. Questo comportamento si verifica anche quando viene abilitato il paging basato su server nel servizio dati.This behavior also occurs when server-driven paging is enabled in the data service. Per ulteriori informazioni, vedere configurazione del servizio dati. Per controllare l'ordinamento del feed restituito, è necessario includere $orderby nell'URI della query.For more information, see Configuring the Data Service.To control the ordering of the returned feed, you should include $orderby in the query URI.

Vedere ancheSee Also

Definizione di WCF Data ServicesDefining WCF Data Services
Libreria client WCF Data ServicesWCF Data Services Client Library