Share via


Consommation de flux OData dans une application console (démarrage rapide de WCF Data Services)

Dans cette tâche, vous allez créer une application console dans Visual Studio, ajouter une référence à l'exemple de service Protocole OData (Open Data) Northwind dans cette nouvelle application et accéder au flux OData à partir de l'application à l'aide des classes de service de données client et de la bibliothèque cliente Services de données WCF générées.

Pour consommer l'exemple de service OData Northwind dans une application console

  1. Cliquez avec le bouton droit sur la solution dans l'Explorateur de solutions, cliquez sur Ajouter, puis sur Nouveau projet.

  2. Dans Types de projets, cliquez sur Windows, puis sélectionnez Application console dans le volet Modèles.

  3. Entrez NorthwindConsole comme nom de projet, puis cliquez sur OK.

  4. Cliquez avec le bouton droit sur le projet NorthwindConsole, puis cliquez sur Ajouter une référence de service et dans le champ Adresse, entrez l'URI de l'exemple de service de données Northwind comme suit :

    http://services.odata.org/Northwind/Northwind.svc/
    
  5. Dans la zone de texte Espace de noms, tapez Northwind, puis cliquez sur OK.

    Cette opération ajoute des références aux assemblys Services de données WCF requis. Elle ajoute également un nouveau fichier de code au projet qui contient les classes de données utilisées pour accéder et interagir avec les ressources du service de données sous la forme d'objets. Les classes de données sont créées dans l'espace de noms NorthwindConsole.Northwind.

  6. Ouvrez le fichier programme de l'application console et ajoutez l'instruction using (Imports en Visual Basic) suivante :

    Imports System.Data.Services.Client
    Imports NorthwindConsole.Northwind
    
    using System.Data.Services.Client;
    using Northwind;
    
  7. Dans le fichier programme, ajoutez le code suivant dans la méthode Main :

    ' Define the URI of the public Northwind OData service.
    Dim northwindUri As Uri = _
        New Uri("http://services.odata.org/Northwind/Northwind.svc/", _
            UriKind.Absolute)
    
    ' Define a customer for filtering.
    Const customer As String = "ALFKI"
    
    ' Create a new instance of the typed DataServiceContext.
    Dim context As NorthwindEntities = _
        New NorthwindEntities(northwindUri)
    
    ' Create a LINQ query to get the orders, including line items, 
    ' for the selected customer.
    Dim query = From order In context.Orders.Expand("Order_Details") _
                Where order.CustomerID = customer _
                Select order
    Try            
        Console.WriteLine("Writing order ID and line item information...")
    
        ' Enumerating returned orders sends the query request to the service.
        For Each o As Order In query
    
            Console.WriteLine("Order ID: {0}", o.OrderID)
    
            For Each item As Order_Detail In o.Order_Details
    
                Console.WriteLine(vbTab & "Product ID: {0} -- Quantity: {1}", _
                    item.ProductID, item.Quantity)
            Next                
        Next
    Catch ex As DataServiceQueryException            
        Console.WriteLine(ex.Message)
    End Try
    
    // Define the URI of the public Northwind OData service.
    Uri northwindUri =
        new Uri("http://services.odata.org/Northwind/Northwind.svc/",
            UriKind.Absolute);
    
    // Define a customer for filtering.
    const string customer = "ALFKI";
    
    // Create a new instance of the typed DataServiceContext.
    NorthwindEntities context = new NorthwindEntities(northwindUri);
    
    // Create a LINQ query to get the orders, including line items, 
    // for the selected customer.
    var query = from order in context.Orders.Expand("Order_Details")
                where order.CustomerID == customer
                select order;
    try
    {
        Console.WriteLine("Writing order ID and line item information...");
    
        // Enumerating returned orders sends the query request to the service.
        foreach (Order o in query)
        {
            Console.WriteLine("Order ID: {0}", o.OrderID);
    
            foreach (Order_Detail item in o.Order_Details)
            {
                Console.WriteLine("\tProduct ID: {0} -- Quantity: {1}",
                    item.ProductID, item.Quantity);
            }
        }
    }
    catch (DataServiceQueryException ex)
    {
        Console.WriteLine(ex.Message);
    }
    

    Ce code interroge l'exemple de service de données Northwind en vue de trouver les commandes et éléments de ligne associés au client ALFKI.

  8. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le projet NorthwindConsole et sélectionnez Définir comme projet de démarrage.

  9. Appuyez sur F5 pour démarrer l'application.

    Cette opération génère et démarre l'application cliente. Les données sont demandées auprès du service et s'affichent dans la console.

Étapes suivantes

Vous avez créé correctement une application cliente simple qui accède à l'exemple de flux OData Northwind. Vous allez ensuite ajouter un projet ASP.NET à la solution. Ce projet hébergera une version accessible en écriture de l'exemple de service OData Northwind exécuté sur votre ordinateur local :

Création du service de données Northwind