Freigeben über


DataServiceContext.Execute Methode

Definition

Sendet eine Anforderung an den Datendienst, um einen bestimmten URI auszuführen.

Überlädt

Execute<T>(DataServiceQueryContinuation<T>)

Sendet eine Anforderung an den Datendienst, um die nächste Seite der Daten in einem ausgelagerten Abfrageergebnis abzurufen.

Execute<TElement>(Uri)

Sendet eine Anforderung an den Datendienst, um einen bestimmten URI auszuführen.

Execute<T>(DataServiceQueryContinuation<T>)

Sendet eine Anforderung an den Datendienst, um die nächste Seite der Daten in einem ausgelagerten Abfrageergebnis abzurufen.

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)

Typparameter

T

Der von der Abfrage zurückgegebene Typ.

Parameter

continuation
DataServiceQueryContinuation<T>

Ein DataServiceQueryContinuation<T>-Objekt, das die nächste Seite der Daten darstellt, die vom Datendienst zurückgegeben werden.

Gibt zurück

Die Antwort, die die nächste Seite der Daten im Abfrageergebnis enthält.

Ausnahmen

Wenn ein Fehler entweder während der Ausführung der Anforderung ausgelöst wird oder wenn der Inhalt der Antwortnachricht in Objekte konvertiert wird.

Hinweise

Das angegebene DataServiceQueryContinuation<T>-Objekt enthält den URI der bei Ausführung die nächste Seite der Daten im Abfrageergebnis zurück.

Gilt für:

Execute<TElement>(Uri)

Sendet eine Anforderung an den Datendienst, um einen bestimmten URI auszuführen.

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)

Typparameter

TElement

Der Typ, den die Funktion zurückgibt.

Parameter

requestUri
Uri

Der URI, an den die generierte Abfrage gesendet wird. Der URI ist kann jeder gültige Datendienst-URI sein. Kann $-Abfrageparameter enthalten.

Gibt zurück

IEnumerable<TElement>

Die Ergebnisse der Abfrage.

Ausnahmen

Wenn eine Antwort nicht von einer Anforderung an den requestUri empfangen wird.

Wenn requestUrinull ist.

Wenn requestUri kein gültiger URI für den Datendienst ist.

Wenn ein Fehler entweder während der Ausführung der Anforderung ausgelöst wird oder wenn der Inhalt der Antwortnachricht in Objekte konvertiert wird.

Der Datendienst gibt den FEHLER HTTP 404: Resource Not Found (Ressource nicht gefunden) zurück.

Beispiele

In diesem Beispiel werden do…while-Entitäten aus ausgelagerten Ergebnissen aus dem Datendienst mithilfe einer Customers-Schleife geladen. Die Execute-Methode wird mit dem nächsten Link-URI aufgerufen, um die nächste Seite der Daten zu empfangen.

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

Hinweise

Die Execute-Methode wird verwendet, um durch den URI einen Datendienst abzufragen. Die Methode verursacht eine HTTP-GET-Anforderung, die zum Datendienst ausgegeben wird. Der angegebene Anforderungs-URI kann absolut oder relativ sein.

Wenn der requestUri absolut ist, überprüft diese Methode, ob beim Erstellen des DataServiceContext der URI auf den angegebenen Datendienst verweist. Wenn der requestUri relativ ist, entfernt diese Methode alle vorangestellten Schrägstriche und fügt requestUri an die beim Erstellen des DataServiceContext bereitgestellten Daten an. Ein Schrägstrich wird angefügt, nachdem der URI zum DataServiceContext-Konstruktor übergeben wurde (sofern nicht bereits vorhanden).

Nach dem Beenden dieser Methode wurde die ganze HTTP-Antwort für die Anforderung vom Netzwerkdatenstrom gelesen, aber die Antwort wurde nicht verarbeitet. Keine Identitätsauflösung oder Objektmaterialisierung. Identitätsauflösung und vollständige Objektmaterialisierung treten für eine angegebene Entität in der Antwort erst auf, wenn diese aufgelistet wird.

Weitere Informationen

Gilt für: