Export (0) Print
Expand All
This topic has not yet been rated - Rate this topic

DataServiceContext.Execute<TElement> Method (Uri)

Sends a request to the data service to execute a specific URI.

Namespace:  System.Data.Services.Client
Assembly:  System.Data.Services.Client (in System.Data.Services.Client.dll)
public IEnumerable<TElement> Execute<TElement>(
	Uri requestUri
)

Type Parameters

TElement

The type that the query returns.

Parameters

requestUri
Type: System.Uri

The URI to which the query request will be sent. The URI may be any valid data service URI. Can contain $ query parameters.

Return Value

Type: System.Collections.Generic.IEnumerable<TElement>
The results of the query operation.
ExceptionCondition
WebException

When a response is not received from a request to the requestUri.

ArgumentNullException

When requestUri is null.

ArgumentException

When requestUri is not a valid URI for the data service.

InvalidOperationException

When an error is raised either during execution of the request or when it converts the contents of the response message into objects.

The Execute method is used to query a data service by URI; the method causes an HTTP GET request to be issued to the data service. The request URI specified can be absolute or relative.

If the requestUri is absolute, this method validates whether the URI points to the same data service that was specified when constructing the DataServiceContext. If the requestUri is relative, this method strips off any leading slashes and appends requestUri to what was provided when constructing the DataServiceContext. A slash is appended after the URI passed to the DataServiceContext constructor, if one is not already present.

When this method returns, all of the HTTP response for the request has been read from the network stream, but the response will not have been processed; there is no identity resolution or object materialization. Identity resolution and full object materialization do not occur for a specified entity in the response until it is enumerated.

This example uses a do…while loop to load Customers entities from a paged results from the data service. The Execute method is called by using the next link URI to receive the next page of data.

// Create the DataServiceContext using the service URI.
NorthwindEntities context = new NorthwindEntities(svcUri);
DataServiceQueryContinuation<Customers> token = null;
int pageCount = 0; 

try
{ 
    // Execute the query for all customers and get the response object.
    QueryOperationResponse<Customers> response =
        context.Customers.Execute() as QueryOperationResponse<Customers>;

    // 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<Customers>(token)
                as QueryOperationResponse<Customers>;
        }

        // Enumerate the customers in the response. 
        foreach (Customers 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 (Exception ex)
{
    throw new ApplicationException(
        "An error occurred during query execution.", ex);
}

Windows 7, Windows Vista, Windows XP SP2, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

.NET Framework

Supported in: 3.5 SP1
Did you find this helpful?
(1500 characters remaining)
Thank you for your feedback

Community Additions

ADD
Show:
© 2014 Microsoft. All rights reserved.