Freigeben über


DataServiceContext.Execute<TElement>-Methode (Uri)

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

Wird vom WCF Data Services 5.0-Client für Silverlight nicht unterstützt.

Namespace:  System.Data.Services.Client
Assembly:  Microsoft.Data.Services.Client (in Microsoft.Data.Services.Client.dll)

Syntax

'Declaration
Public Function Execute(Of TElement) ( _
    requestUri As Uri _
) As IEnumerable(Of TElement)
'Usage
Dim instance As DataServiceContext
Dim requestUri As Uri
Dim returnValue As IEnumerable(Of TElement)

returnValue = instance.Execute(requestUri)
public IEnumerable<TElement> Execute<TElement>(
    Uri requestUri
)
public:
generic<typename TElement>
IEnumerable<TElement>^ Execute(
    Uri^ requestUri
)
member Execute : 
        requestUri:Uri -> IEnumerable<'TElement> 
JScript unterstützt keine generischen Typen und Methoden.

Typparameter

  • TElement
    Der Typ, den die Funktion zurückgibt.

Parameter

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

Rückgabewert

Typ: System.Collections.Generic.IEnumerable<TElement>
Die Ergebnisse der Abfrage.

Ausnahmen

Ausnahme Bedingung
WebException

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

ArgumentNullException

Wenn requestUri nullein NULL-Verweis (Nothing in Visual Basic) ist.

ArgumentException

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

InvalidOperationException

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

DataServiceQueryException

Wenn der Datendienst den Fehler "HTTP 404: Ressource nicht gefunden" zurückgibt.

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.

Beispiele

Dieses Beispiel verwendet eine Schleife mit do?while zum Laden von Customers Entitäten aus einem Seitenergebnis vom Datendienst. 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.
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
// 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);
}

Siehe auch

Verweis

DataServiceContext Klasse

Execute-Überladung

System.Data.Services.Client-Namespace

Andere Ressourcen

Laden von verzögertem Inhalt (WCF Data Services)

Gewusst wie: Laden von ausgelagerten Ergebnissen (WCF Data Services)