DataServiceContext.Execute Methode

Definitie

Verzendt een aanvraag naar de gegevensservice om een specifieke URI uit te voeren.

Overloads

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

Hiermee wordt een aanvraag naar de gegevensservice verzonden om de volgende pagina met gegevens op te halen in een gepaginad queryresultaat.

Execute<TElement>(Uri)

Verzendt een aanvraag naar de gegevensservice om een specifieke URI uit te voeren.

Execute<T>(DataServiceQueryContinuation<T>)

Hiermee wordt een aanvraag naar de gegevensservice verzonden om de volgende pagina met gegevens op te halen in een gepaginad queryresultaat.

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)

Type parameters

T

Het type dat door de query wordt geretourneerd.

Parameters

continuation
DataServiceQueryContinuation<T>

Een DataServiceQueryContinuation<T> object dat de volgende pagina met gegevens vertegenwoordigt die moet worden geretourneerd door de gegevensservice.

Retouren

Het antwoord dat de volgende pagina met gegevens in het queryresultaat bevat.

Uitzonderingen

Wanneer er een fout optreedt tijdens de uitvoering van de aanvraag of wanneer deze de inhoud van het antwoordbericht converteert naar objecten.

Opmerkingen

Het opgegeven DataServiceQueryContinuation<T> object bevat de URI die, wanneer deze wordt uitgevoerd, de volgende pagina met gegevens in het queryresultaat retourneert.

Van toepassing op

Execute<TElement>(Uri)

Verzendt een aanvraag naar de gegevensservice om een specifieke URI uit te voeren.

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)

Type parameters

TElement

Het type dat de query retourneert.

Parameters

requestUri
Uri

De URI waarnaar de queryaanvraag wordt verzonden. De URI kan een geldige gegevensservice-URI zijn. Kan $ queryparameters bevatten.

Retouren

IEnumerable<TElement>

De resultaten van de querybewerking.

Uitzonderingen

Wanneer een antwoord niet wordt ontvangen van een aanvraag naar de requestUri.

Wanneer requestUri is null.

Wanneer requestUri is er geen geldige URI voor de gegevensservice.

Wanneer er een fout optreedt tijdens de uitvoering van de aanvraag of wanneer deze de inhoud van het antwoordbericht converteert naar objecten.

De gegevensservice retourneert een HTTP 404: fout Resource niet gevonden.

Voorbeelden

In dit voorbeeld wordt een do…while lus gebruikt om entiteiten te laden Customers uit een gepaginade resultaten van de gegevensservice. De Execute methode wordt aangeroepen met behulp van de volgende koppelings-URI om de volgende pagina met gegevens te ontvangen.

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

Opmerkingen

De Execute methode wordt gebruikt om een query uit te voeren op een gegevensservice op basis van URI. De methode zorgt ervoor dat een HTTP GET-aanvraag wordt uitgegeven aan de gegevensservice. De opgegeven aanvraag-URI kan absoluut of relatief zijn.

Als de absolute requestUri waarde is, valideert deze methode of de URI verwijst naar dezelfde gegevensservice die is opgegeven bij het samenstellen van de DataServiceContext. Als de requestUri relatieve is, verwijdert deze methode alle voorloopslashes en voegt deze toe aan requestUri wat er is opgegeven bij het maken van de DataServiceContext. Er wordt een slash toegevoegd nadat de URI is doorgegeven aan de DataServiceContext constructor, als deze nog niet aanwezig is.

Wanneer deze methode wordt geretourneerd, is al het HTTP-antwoord voor de aanvraag gelezen uit de netwerkstroom, maar is het antwoord niet verwerkt; er is geen identiteitsomzetting of object materialisatie. Identiteitsomzetting en volledige object materialisatie vinden niet plaats voor een opgegeven entiteit in het antwoord totdat deze is geïnventariseerd.

Zie ook

Van toepassing op