DataServiceContext.Execute Metod

Definition

Skickar en begäran till datatjänsten om att köra en specifik URI.

Överlagringar

Name Description
Execute<T>(DataServiceQueryContinuation<T>)

Skickar en begäran till datatjänsten för att hämta nästa sida med data i ett sidsidigt frågeresultat.

Execute<TElement>(Uri)

Skickar en begäran till datatjänsten om att köra en specifik URI.

Execute<T>(DataServiceQueryContinuation<T>)

Skickar en begäran till datatjänsten för att hämta nästa sida med data i ett sidsidigt frågeresultat.

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)

Typparametrar

T

Den typ som returneras av frågan.

Parametrar

continuation
DataServiceQueryContinuation<T>

Ett DataServiceQueryContinuation<T> objekt som representerar nästa sida med data som ska returneras från datatjänsten.

Returer

Svaret som innehåller nästa sida med data i frågeresultatet.

Undantag

När ett fel uppstår antingen under körningen av begäran eller när innehållet i svarsmeddelandet konverteras till objekt.

Kommentarer

Det angivna DataServiceQueryContinuation<T> objektet innehåller den URI som returnerar nästa sida med data i frågeresultatet när det körs.

Gäller för

Execute<TElement>(Uri)

Skickar en begäran till datatjänsten om att köra en specifik URI.

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)

Typparametrar

TElement

Den typ som frågan returnerar.

Parametrar

requestUri
Uri

Den URI som frågebegäran ska skickas till. URI:n kan vara en giltig URI för datatjänsten. Kan innehålla $ frågeparametrar.

Returer

IEnumerable<TElement>

Resultatet av frågeåtgärden.

Undantag

När ett svar inte tas emot från en begäran till requestUri.

När requestUri är null.

När requestUri är inte en giltig URI för datatjänsten.

När ett fel uppstår antingen under körningen av begäran eller när innehållet i svarsmeddelandet konverteras till objekt.

Datatjänsten returnerar felet HTTP 404: Resursen hittades inte.

Exempel

I det här exemplet används en do…while loop för att läsa in Customers entiteter från ett sidiga resultat från datatjänsten. Metoden Execute anropas med hjälp av nästa länk-URI för att ta emot nästa sida med data.

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

Kommentarer

Metoden Execute används för att fråga en datatjänst av URI. Metoden gör att en HTTP GET-begäran utfärdas till datatjänsten. Den angivna begärande-URI:n kan vara absolut eller relativ.

Om är requestUri absolut verifierar den här metoden om URI:n pekar på samma datatjänst som angavs när konstruera .DataServiceContext requestUri Om är relativ tar den här metoden bort eventuella inledande snedstreck och tillägg till det som angavs requestUri när du skapade DataServiceContext. Ett snedstreck läggs till efter att URI:n skickats till DataServiceContext konstruktorn, om den inte redan finns.

När den här metoden returneras har alla HTTP-svar för begäran lästs från nätverksströmmen, men svaret har inte bearbetats. Det finns ingen identitetsmatchning eller objektmaterialisering. Identitetsmatchning och fullständig objektmaterialisering sker inte för en angiven entitet i svaret förrän den räknas upp.

Se även

Gäller för