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 para o serviço de dados para executar um URI específico.
Sobrecargas
| Nome | Description |
|---|---|
| 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 de consulta paginado. |
| Execute<TElement>(Uri) |
Envia uma solicitação para o 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 de consulta paginado.
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 DataServiceQueryContinuation<T> objeto que representa a próxima página de dados a ser retornado 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 é gerado 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 para o 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 de serviço de dados válido. Pode conter parâmetros de consulta $.
Retornos
Os resultados da operação de consulta.
Exceções
Quando uma resposta não é 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 é gerado 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 de páginas 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 da solicitação especificado pode ser absoluto ou relativo.
Se for requestUri absoluto, esse método valida se o URI aponta para o mesmo serviço de dados especificado ao construir o DataServiceContext. Se for requestUri relativo, esse método removerá todas as barras principais e acrescentará requestUri ao que foi fornecido ao construir o DataServiceContext. Uma barra é acrescentada depois que o URI é passado para o DataServiceContext construtor, se ainda não estiver presente.
Quando esse método retorna, toda a resposta HTTP da 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.