DataServiceContext.Execute Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Odešle požadavek datové službě na spuštění konkrétního identifikátoru URI.
Přetížení
Execute<T>(DataServiceQueryContinuation<T>) |
Odešle žádost datové službě o načtení další stránky dat ve výsledku stránkovaného dotazu. |
Execute<TElement>(Uri) |
Odešle požadavek datové službě na spuštění konkrétního identifikátoru URI. |
Execute<T>(DataServiceQueryContinuation<T>)
Odešle žádost datové službě o načtení další stránky dat ve výsledku stránkovaného dotazu.
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)
Parametry typu
- T
Typ vrácený dotazem.
Parametry
- continuation
- DataServiceQueryContinuation<T>
Objekt DataServiceQueryContinuation<T> , který představuje další stránku dat, která se má vrátit z datové služby.
Návraty
Odpověď, která obsahuje další stránku dat ve výsledku dotazu.
Výjimky
Při vyvolání chyby při provádění požadavku nebo při převodu obsahu zprávy odpovědi na objekty.
Poznámky
Zadaný DataServiceQueryContinuation<T> objekt obsahuje identifikátor URI, který při spuštění vrátí další stránku dat ve výsledku dotazu.
Platí pro
Execute<TElement>(Uri)
Odešle požadavek datové službě na spuštění konkrétního identifikátoru 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)
Parametry typu
- TElement
Typ, který dotaz vrátí.
Parametry
- requestUri
- Uri
Identifikátor URI, na který se odešle požadavek dotazu. Identifikátor URI může být libovolný platný identifikátor URI datové služby. Může obsahovat parametry dotazu $ .
Návraty
Výsledky operace dotazu
Výjimky
Pokud odpověď není přijata z požadavku na requestUri
.
Když requestUri
je null
.
Pokud requestUri
není platný identifikátor URI pro datovou službu.
Při vyvolání chyby při provádění požadavku nebo při převodu obsahu zprávy odpovědi na objekty.
Datová služba vrátí chybu HTTP 404: Prostředek nenalezl.
Příklady
Tento příklad používá smyčku do…while
k načtení Customers
entit ze stránkovaných výsledků z datové služby. Metoda se Execute volá pomocí identifikátoru URI dalšího odkazu pro příjem další stránky dat.
// 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
Poznámky
Metoda Execute se používá k dotazování datové služby pomocí identifikátoru URI. Metoda způsobí, že se do datové služby vydá požadavek HTTP GET. Zadaný identifikátor URI požadavku může být absolutní nebo relativní.
requestUri
Pokud je hodnota absolutní, tato metoda ověří, jestli identifikátor URI odkazuje na stejnou datovou službu, která byla zadána při vytváření DataServiceContext. requestUri
Pokud je relativní, tato metoda odstraní všechna počáteční lomítka a připojí requestUri
k tomu, co bylo poskytnuto při vytváření objektu DataServiceContext. Lomítko se připojí za identifikátor URI předaný konstruktoru DataServiceContext , pokud ještě neexistuje.
Když tato metoda vrátí, všechny odpovědi HTTP pro požadavek byly načteny ze síťového streamu, ale odpověď nebude zpracována; neexistuje žádný překlad identity ani materializace objektů. Pro zadanou entitu v odpovědi nedochází k překladu identity a úplné materializaci objektů, dokud není uveden výčet.
Viz také
- Načítání odloženého obsahu (WCF Data Services)
- Postupy: Načtení stránkovaných výsledků (WCF Data Services)