DataServiceContext.Execute Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
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
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.