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
Execute<T>(DataServiceQueryContinuation<T>) |
Invia una richiesta al servizio dati per recuperare la pagina di dati successiva in un risultato di query di cui è stato eseguito il 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 di dati successiva in un risultato di query di cui è stato eseguito il 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 di dati successiva da restituire dal servizio dati.
Restituisce
Risposta contenente la pagina di dati successiva nel risultato di query.
Eccezioni
Se viene generato un errore durante l'esecuzione della richiesta o la conversione del contenuto del messaggio di risposta in oggetti.
Commenti
L'oggetto DataServiceQueryContinuation<T> fornito contiene l'URI che, in caso di esecuzione, restituisce la pagina di dati successiva 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 al quale verrà inviata la richiesta della query. Può essere qualsiasi URI del servizio dati valido. Può contenere parametri di query $.
Restituisce
Risultati dell'operazione di query.
Eccezioni
Se non viene ricevuta una risposta da una richiesta a requestUri
.
Quando requestUri
è null
.
Se requestUri
non è un URI valido per il servizio dati.
Se viene generato un errore durante l'esecuzione della richiesta o la conversione del contenuto del messaggio di risposta in oggetti.
Il servizio dati restituisce un errore HTTP 404: Risorsa non trovata.
Esempio
In questo esempio viene usato un ciclo do…while
per caricare entità Customers
dai risultati di paging del servizio dati. Il metodo Execute viene chiamato tramite l'URI di collegamento successivo per ricevere la successiva pagina 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 Execute viene utilizzato per eseguire una query su un servizio dati in base all'URI; il metodo comporta la generazione 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 in fase di costruzione di DataServiceContext. Se requestUri
è relativo, questo metodo rimuove qualsiasi barra iniziale e aggiunge requestUri
a quanto fornito in fase di costruzione di DataServiceContext. Se non è già presente, dopo l'URI passato al costruttore DataServiceContext viene aggiunta una barra.
Se viene restituito questo metodo, tutte le risposte HTTP per la richiesta sono state lette dal flusso di rete, ma non verranno elaborate. Non si verifica alcuna risoluzione di identità o materializzazione di oggetti completa per un'entità specificata nella risposta, finché non viene enumerata.
Vedi anche
- Caricamento di contenuto posticipato (WCF Data Services)
- Procedura: caricare risultati di paging (WCF Data Services)