Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo DataServiceContext.Execute<TElement>(Uri)

 

Data di pubblicazione: ottobre 2016

Invia una richiesta al servizio dati per eseguire un URI specifico.

Spazio dei nomi:   System.Data.Services.Client
Assembly:  System.Data.Services.Client (in System.Data.Services.Client.dll)

public IEnumerable<TElement> Execute<TElement>(
	Uri requestUri
)

Parametri

requestUri
Type: System.Uri

URI al quale verrà inviata la richiesta della query. Può essere qualsiasi URI del servizio dati valido. Può contenere parametri di query $.

Valore restituito

Type: System.Collections.Generic.IEnumerable<TElement>

Risultati dell'operazione di query.

Parametri tipo

TElement

Tipo restituito dalla query.

Exception Condition
WebException

Se non viene ricevuta una risposta da una richiesta a requestUri.

ArgumentNullException

Quando requestUri è null.

ArgumentException

Se requestUri non è un URI valido per il servizio dati.

InvalidOperationException

Se viene generato un errore durante l'esecuzione della richiesta o la conversione del contenuto del messaggio di risposta in oggetti.

DataServiceQueryException

Se il servizio dati restituisce un errore HTTP 404: Risorsa non trovata.

Il metodo Execute<TElement> 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.

In questo esempio viene usato un ciclo do…while per caricare entità Customers dai risultati di paging del servizio dati. Il metodo Execute<TElement> 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);
}

.NET Framework
Disponibile da 3.5
Torna all'inizio
Mostra: