DataServiceContext.Execute Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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
Die Ergebnisse der Abfrage.
Ausnahmen
Wenn eine Antwort nicht von einer Anforderung an den requestUri
empfangen wird.
Wenn requestUri
null
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
- Laden von verzögerten Inhalten (WCF Data Services)
- Gewusst wie: Laden von ausgelagerten Ergebnissen (WCF Data Services)