DataServiceContext.Execute Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Invia una richiesta al servizio dati per eseguire un URI specifico.
Overload
| Nome | Descrizione |
|---|---|
| Execute<T>(DataServiceQueryContinuation<T>) |
Invia una richiesta al servizio dati per recuperare la pagina successiva dei dati in un risultato della query di paging. |
| Execute<TElement>(Uri) |
Invia una richiesta al servizio dati per eseguire un URI specifico. |
Execute<T>(DataServiceQueryContinuation<T>)
Invia una richiesta al servizio dati per recuperare la pagina successiva dei dati in un risultato della query di paging.
public:
generic <typename T>
System::Data::Services::Client::QueryOperationResponse<T> ^ Execute(System::Data::Services::Client::DataServiceQueryContinuation<T> ^ continuation);
public System.Data.Services.Client.QueryOperationResponse<T> Execute<T>(System.Data.Services.Client.DataServiceQueryContinuation<T> continuation);
member this.Execute : System.Data.Services.Client.DataServiceQueryContinuation<'T> -> System.Data.Services.Client.QueryOperationResponse<'T>
Public Function Execute(Of T) (continuation As DataServiceQueryContinuation(Of T)) As QueryOperationResponse(Of T)
Parametri di tipo
- T
Tipo restituito dalla query.
Parametri
- continuation
- DataServiceQueryContinuation<T>
Oggetto DataServiceQueryContinuation<T> che rappresenta la pagina successiva di dati da restituire dal servizio dati.
Valori restituiti
Risposta contenente la pagina successiva di dati nel risultato della query.
Eccezioni
Quando viene generato un errore durante l'esecuzione della richiesta o quando converte il contenuto del messaggio di risposta in oggetti .
Commenti
L'oggetto fornito DataServiceQueryContinuation<T> contiene l'URI che, quando eseguito, restituisce la pagina successiva dei dati nel risultato della query.
Si applica a
Execute<TElement>(Uri)
Invia una richiesta al servizio dati per eseguire un URI specifico.
public:
generic <typename TElement>
System::Collections::Generic::IEnumerable<TElement> ^ Execute(Uri ^ requestUri);
public System.Collections.Generic.IEnumerable<TElement> Execute<TElement>(Uri requestUri);
member this.Execute : Uri -> seq<'Element>
Public Function Execute(Of TElement) (requestUri As Uri) As IEnumerable(Of TElement)
Parametri di tipo
- TElement
Tipo restituito dalla query.
Parametri
- requestUri
- Uri
URI a cui verrà inviata la richiesta di query. L'URI può essere qualsiasi URI del servizio dati valido. Può contenere parametri di query $.
Valori restituiti
Risultati dell'operazione di query.
Eccezioni
Quando una risposta non viene ricevuta da una richiesta all'oggetto requestUri.
Quando requestUri è null.
Quando requestUri non è un URI valido per il servizio dati.
Quando viene generato un errore durante l'esecuzione della richiesta o quando converte il contenuto del messaggio di risposta in oggetti .
Il servizio dati restituisce un errore HTTP 404: Risorsa non trovata.
Esempio
Questo esempio usa un do…while ciclo per caricare Customers le entità da un risultato di paging dal servizio dati. Il Execute metodo viene chiamato usando l'URI di collegamento successivo per ricevere la pagina successiva di dati.
// Create the DataServiceContext using the service URI.
NorthwindEntities context = new NorthwindEntities(svcUri);
DataServiceQueryContinuation<Customer> token = null;
int pageCount = 0;
try
{
// Execute the query for all customers and get the response object.
QueryOperationResponse<Customer> response =
context.Customers.Execute() as QueryOperationResponse<Customer>;
// With a paged response from the service, use a do...while loop
// to enumerate the results before getting the next link.
do
{
// Write the page number.
Console.WriteLine("Page {0}:", pageCount++);
// If nextLink is not null, then there is a new page to load.
if (token != null)
{
// Load the new page from the next link URI.
response = context.Execute<Customer>(token)
as QueryOperationResponse<Customer>;
}
// Enumerate the customers in the response.
foreach (Customer customer in response)
{
Console.WriteLine("\tCustomer Name: {0}", customer.CompanyName);
}
}
// Get the next link, and continue while there is a next link.
while ((token = response.GetContinuation()) != null);
}
catch (DataServiceQueryException ex)
{
throw new ApplicationException(
"An error occurred during query execution.", ex);
}
' Create the DataServiceContext using the service URI.
Dim context = New NorthwindEntities(svcUri)
Dim token As DataServiceQueryContinuation(Of Customer) = Nothing
Dim pageCount = 0
Try
' Execute the query for all customers and get the response object.
Dim response As QueryOperationResponse(Of Customer) =
CType(context.Customers.Execute(), QueryOperationResponse(Of Customer))
' With a paged response from the service, use a do...while loop
' to enumerate the results before getting the next link.
Do
' Write the page number.
Console.WriteLine("Page {0}:", pageCount + 1)
' If nextLink is not null, then there is a new page to load.
If token IsNot Nothing Then
' Load the new page from the next link URI.
response = CType(context.Execute(Of Customer)(token),
QueryOperationResponse(Of Customer))
End If
' Enumerate the customers in the response.
For Each customer As Customer In response
Console.WriteLine(vbTab & "Customer Name: {0}", customer.CompanyName)
Next
' Get the next link, and continue while there is a next link.
token = response.GetContinuation()
Loop While token IsNot Nothing
Catch ex As DataServiceQueryException
Throw New ApplicationException(
"An error occurred during query execution.", ex)
End Try
Commenti
Il metodo viene usato per eseguire query su un servizio dati in base all'URI. Il Execute metodo determina l'emissione di una richiesta HTTP GET al servizio dati. L'URI della richiesta specificato può essere assoluto o relativo.
Se è requestUri assoluto, questo metodo convalida se l'URI punta allo stesso servizio dati specificato durante la costruzione di DataServiceContext. Se è requestUri relativo, questo metodo rimuove tutte le barre iniziali e aggiunge requestUri a ciò che è stato fornito durante la costruzione dell'oggetto DataServiceContext. Una barra viene aggiunta dopo che l'URI passato al DataServiceContext costruttore, se non ne è già presente uno.
Al termine di questo metodo, tutta la risposta HTTP per la richiesta è stata letta dal flusso di rete, ma la risposta non sarà stata elaborata; non esiste alcuna risoluzione dell'identità o materializzazione degli oggetti. La risoluzione delle identità e la materializzazione completa degli oggetti non si verificano per un'entità specificata nella risposta fino a quando non viene enumerata.
Vedi anche
- Caricamento di contenuto posticipato (WCF Data Services)
- Procedura: Caricare risultati con paging (WCF Data Services)