DataServiceContext.Execute Metodo

Definizione

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

IEnumerable<TElement>

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

Si applica a