Partilhar via


DataServiceContext.Execute Método

Definição

Envia uma solicitação ao serviço de dados para executar um URI específico.

Sobrecargas

Execute<T>(DataServiceQueryContinuation<T>)

Envia uma solicitação ao serviço de dados para recuperar a próxima página de dados em um resultado paginado da consulta.

Execute<TElement>(Uri)

Envia uma solicitação ao serviço de dados para executar um URI específico.

Execute<T>(DataServiceQueryContinuation<T>)

Envia uma solicitação ao serviço de dados para recuperar a próxima página de dados em um resultado paginado da consulta.

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)

Parâmetros de tipo

T

O tipo retornado pela consulta.

Parâmetros

continuation
DataServiceQueryContinuation<T>

Um objeto DataServiceQueryContinuation<T> que representa a próxima página de dados a ser retornada do serviço de dados.

Retornos

A resposta que contém a próxima página de dados no resultado da consulta.

Exceções

Quando um erro é acionado durante a execução da solicitação ou quando ele converte o conteúdo da mensagem de resposta em objetos.

Comentários

O objeto fornecido DataServiceQueryContinuation<T> contém o URI que, quando executado, retorna a próxima página de dados no resultado da consulta.

Aplica-se a

Execute<TElement>(Uri)

Envia uma solicitação ao serviço de dados para executar um URI específico.

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)

Parâmetros de tipo

TElement

O tipo que a consulta retorna.

Parâmetros

requestUri
Uri

O URI para o qual a solicitação de consulta será enviada. O URI pode ser qualquer URI válido do serviço de dados. Pode conter parâmetros de consulta $.

Retornos

IEnumerable<TElement>

Os resultados da operação de consulta.

Exceções

Quando uma resposta não for recebida de uma solicitação para o requestUri.

Quando requestUri é null.

Quando requestUri não é um URI válido para o serviço de dados.

Quando um erro é acionado durante a execução da solicitação ou quando ele converte o conteúdo da mensagem de resposta em objetos.

O serviço de dados retorna um erro HTTP 404: Recurso Não Encontrado.

Exemplos

Este exemplo usa um do…while loop para carregar Customers entidades de um resultado paginado do serviço de dados. O Execute método é chamado usando o próximo URI de link para receber a próxima página de dados.

// 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

Comentários

O Execute método é usado para consultar um serviço de dados por URI; o método faz com que uma solicitação HTTP GET seja emitida para o serviço de dados. O URI de solicitação especificado pode ser absoluto ou relativo.

Se o requestUri for absoluto, esse método valida se o URI aponta para o mesmo serviço de dados especificado ao construir o DataServiceContext. Se o requestUri for relativo, esse método removerá todas as barras à esquerda e acrescentará requestUri ao que foi fornecido ao construir o DataServiceContext. Uma barra será acrescentada depois que o URI for passado para o DataServiceContext construtor, se ainda não estiver presente.

Quando esse método retorna, toda a resposta HTTP para a solicitação foi lida do fluxo de rede, mas a resposta não terá sido processada; não há nenhuma resolução de identidade ou materialização de objeto. A resolução de identidade e a materialização completa do objeto não ocorrem para uma entidade especificada na resposta até que ela seja enumerada.

Confira também

Aplica-se a