DataServiceContext.Execute Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Skickar en begäran till datatjänsten om att köra en specifik URI.
Överlagringar
| Name | Description |
|---|---|
| Execute<T>(DataServiceQueryContinuation<T>) |
Skickar en begäran till datatjänsten för att hämta nästa sida med data i ett sidsidigt frågeresultat. |
| Execute<TElement>(Uri) |
Skickar en begäran till datatjänsten om att köra en specifik URI. |
Execute<T>(DataServiceQueryContinuation<T>)
Skickar en begäran till datatjänsten för att hämta nästa sida med data i ett sidsidigt frågeresultat.
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)
Typparametrar
- T
Den typ som returneras av frågan.
Parametrar
- continuation
- DataServiceQueryContinuation<T>
Ett DataServiceQueryContinuation<T> objekt som representerar nästa sida med data som ska returneras från datatjänsten.
Returer
Svaret som innehåller nästa sida med data i frågeresultatet.
Undantag
När ett fel uppstår antingen under körningen av begäran eller när innehållet i svarsmeddelandet konverteras till objekt.
Kommentarer
Det angivna DataServiceQueryContinuation<T> objektet innehåller den URI som returnerar nästa sida med data i frågeresultatet när det körs.
Gäller för
Execute<TElement>(Uri)
Skickar en begäran till datatjänsten om att köra en specifik URI.
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)
Typparametrar
- TElement
Den typ som frågan returnerar.
Parametrar
- requestUri
- Uri
Den URI som frågebegäran ska skickas till. URI:n kan vara en giltig URI för datatjänsten. Kan innehålla $ frågeparametrar.
Returer
Resultatet av frågeåtgärden.
Undantag
När ett svar inte tas emot från en begäran till requestUri.
När requestUri är null.
När requestUri är inte en giltig URI för datatjänsten.
När ett fel uppstår antingen under körningen av begäran eller när innehållet i svarsmeddelandet konverteras till objekt.
Datatjänsten returnerar felet HTTP 404: Resursen hittades inte.
Exempel
I det här exemplet används en do…while loop för att läsa in Customers entiteter från ett sidiga resultat från datatjänsten. Metoden Execute anropas med hjälp av nästa länk-URI för att ta emot nästa sida med data.
// 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
Kommentarer
Metoden Execute används för att fråga en datatjänst av URI. Metoden gör att en HTTP GET-begäran utfärdas till datatjänsten. Den angivna begärande-URI:n kan vara absolut eller relativ.
Om är requestUri absolut verifierar den här metoden om URI:n pekar på samma datatjänst som angavs när konstruera .DataServiceContext
requestUri Om är relativ tar den här metoden bort eventuella inledande snedstreck och tillägg till det som angavs requestUri när du skapade DataServiceContext. Ett snedstreck läggs till efter att URI:n skickats till DataServiceContext konstruktorn, om den inte redan finns.
När den här metoden returneras har alla HTTP-svar för begäran lästs från nätverksströmmen, men svaret har inte bearbetats. Det finns ingen identitetsmatchning eller objektmaterialisering. Identitetsmatchning och fullständig objektmaterialisering sker inte för en angiven entitet i svaret förrän den räknas upp.
Se även
- Läser in uppskjutet innehåll (WCF Data Services)
- Anvisningar: Läsa in sidsidiga resultat (WCF Data Services)