DataServiceContext.Execute Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
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
- Carregando conteúdo adiado (WCF Data Services)
- Como carregar resultados paginado (WCF Data Services)