DataServiceContext.Execute Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Envía una solicitud al servicio de datos para ejecutar un URI concreto.
Sobrecargas
Execute<T>(DataServiceQueryContinuation<T>) |
Envía una solicitud al servicio de datos para recuperar la página siguiente de datos en un resultado de consulta paginado. |
Execute<TElement>(Uri) |
Envía una solicitud al servicio de datos para ejecutar un URI concreto. |
Execute<T>(DataServiceQueryContinuation<T>)
Envía una solicitud al servicio de datos para recuperar la página siguiente de datos en un 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
Tipo devuelto por la consulta.
Parámetros
- continuation
- DataServiceQueryContinuation<T>
Objeto DataServiceQueryContinuation<T> que representa la siguiente página de datos para devolver del servicio de datos.
Devoluciones
Respuesta que contiene la página siguiente de datos del resultado de la consulta.
Excepciones
Cuando se produce un error durante la ejecución de la solicitud o cuando convierte el contenido del mensaje de respuesta en objetos.
Comentarios
El objeto DataServiceQueryContinuation<T> proporcionado contiene el URI que, cuando se ejecuta, devuelve la página siguiente de datos del resultado de la consulta.
Se aplica a
Execute<TElement>(Uri)
Envía una solicitud al servicio de datos para ejecutar un URI concreto.
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
Tipo devuelto por la consulta.
Parámetros
- requestUri
- Uri
URI al que se enviará la solicitud de consulta. El URI puede ser cualquier URI de servicio de datos válido. Puede contener parámetros de consulta $.
Devoluciones
Resultados de la operación de consulta.
Excepciones
Cuando no se recibe ninguna respuesta de una solicitud a requestUri
.
Cuando requestUri
es null
.
Cuando requestUri
no es un URI válido para el servicio de datos.
Cuando se produce un error durante la ejecución de la solicitud o cuando convierte el contenido del mensaje de respuesta en objetos.
El servicio de datos devuelve un error HTTP 404: Recurso no encontrado.
Ejemplos
En este ejemplo se usa un bucle do…while
para cargar las entidades Customers
desde los resultados paginados del servicio de datos. Se llama al método Execute usando el URI de vínculo siguiente para recibir la siguiente página de datos.
// 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
Comentarios
El método Execute se emplea para consultar un servicio de datos por URI; el método hace que se emita una solicitud HTTP GET al servicio de datos. El URI de solicitud especificado puede ser absoluto o relativo.
Si el requestUri
es absoluto, este método valida si el URI apunta al mismo servicio de datos que se especificó al construir DataServiceContext. Si el requestUri
es relativo, este método quita cualquier barra diagonal inicial y anexa requestUri
a lo que se proporcionó al construir DataServiceContext. Se anexa una barra diagonal después del URI pasado al constructor DataServiceContext, si aún no hay una.
Cuando este método vuelve, toda la respuesta HTTP para la solicitud se ha leído del flujo de red, pero no se habrá procesado la respuesta; no se ha realizado ninguna resolución de identidades ni materialización de objetos. La resolución de identidades y la materialización de todos los objetos no se producen para una entidad especificada en la respuesta hasta que se enumere.
Consulte también
- Cargar contenido diferido (Servicios de datos de WCF)
- Cómo: Cargar resultados paginados (Data Services de WCF)