Partager via


Méthode DataServiceContext.Execute<TElement> (Uri)

Envoie une requête au service de données pour exécuter l'URI spécifique.

N'est pas pris en charge par le cliente WCF Data Services 5.0 pour Silverlight.

Espace de noms :  System.Data.Services.Client
Assembly :  Microsoft.Data.Services.Client (en Microsoft.Data.Services.Client.dll)

Syntaxe

'Déclaration
Public Function Execute(Of TElement) ( _
    requestUri As Uri _
) As IEnumerable(Of TElement)
'Utilisation
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 ne prend pas en charge les types et les méthodes génériques.

Paramètres de type

  • TElement
    Type retourné par la requête.

Paramètres

  • requestUri
    Type : System.Uri
    URI vers lequel la requête d'interrogation sera envoyée.L'URI peut être n'importe quel URI de service de données valide.Peut contenir des paramètres de requête $.

Valeur de retour

Type : System.Collections.Generic.IEnumerable<TElement>
Résultats de l'opération de requête.

Exceptions

Exception Condition
WebException

Lorsqu'une réponse n'est pas reçue d'une requête à requestUri.

ArgumentNullException

Lorsque requestUri est nullune référence Null (Nothing dans Visual Basic).

ArgumentException

Lorsque requestUri n'est pas un URI valide pour le service de données.

InvalidOperationException

Lorsqu'une erreur est levée, soit pendant l'exécution de la requête soit lors de la conversion du contenu du message de réponse en objets.

DataServiceQueryException

Lorsque le service de données retourne une erreur HTTP 404 : Ressource introuvable.

Notes

La méthode Execute est utilisée pour interroger un service de données par URI. Elle génère l'émission d'une requête HTTP GET pour le service de données. L'URI spécifié de la requête peut être absolu ou relatif.

Si requestUri est absolu, cette méthode valide si l'URI désigne le même service de données que celui qui a été spécifié lors de la construction du DataServiceContext. Si requestUri est relatif, cette méthode supprime toutes les barres obliques de début et ajoute requestUri à ce qui a été fourni lors de la construction du DataServiceContext. Une barre oblique est ajoutée après l'URI passé au constructeur DataServiceContext, si elle n'est pas déjà présente.

Au retour de cette méthode, toutes les réponses HTTP pour la requête ont été lues à partir du flux de réseau, mais la réponse n'est pas traitée ; aucune résolution d'identité ou matérialisation d'objets n'est effectuée. La résolution d'identité et la matérialisation d'objets complète ne se produisent pas pour une entité spécifiée dans la réponse avant son énumération.

Exemples

Cet exemple utilise une boucle do?while pour charger des entités Customers à partir de résultats paginés du service de données. La méthode Execute est appelée en utilisant l'URI de lien suivant pour recevoir la page de données suivante.

' 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);
}

Voir aussi

Référence

DataServiceContext Classe

Surcharge Execute

Espace de noms System.Data.Services.Client

Autres ressources

Chargement de contenu différé (WCF Data Services)

Procédure : charger des résultats paginés (WCF Data Services)