Freigeben über


Verarbeiten von OData-Feeds in einer Konsolenanwendung (WCF Data Services-Schnellstart)

In dieser Aufgabe erstellen Sie eine Konsolenanwendung in Visual Studio, fügen in dieser neuen Anwendung einen Verweis auf den Open Data Protocol (OData)-basierten Northwind-Beispieldienst hinzu und greifen aus der Anwendung mithilfe der generierten Clientdatendienstklassen und der WCF Data Services-Clientbibliothek auf den OData-Feed zu.

So verwenden Sie den Northwind OData-Beispieldienst in einer Konsolenanwendung

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf die Projektmappe, klicken Sie auf Hinzufügen und dann auf Neues Projekt.

  2. Klicken Sie in Projekttypen auf Windows, und wählen Sie dann im Bereich Vorlagen die Option Konsolenanwendung aus.

  3. Geben Sie NorthwindConsole als Projektnamen ein, und klicken Sie dann auf OK.

  4. Klicken Sie im neuen NorthwindConsole-Projekt mit der rechten Maustaste auf Dienstverweis hinzufügen, und geben Sie im Feld Adresse den URI des Northwind-Beispieldatendiensts wie folgt ein:

    http://services.odata.org/Northwind/Northwind.svc/
    
  5. Geben Sie im Textfeld Namespace Northwind ein, und klicken Sie auf OK.

    Dies verfügt Verweise auf die erforderlichen WCF Data Services-Assemblys hinzu. Außerdem wird dem Projekt eine neue Codedatei hinzugefügt, die die zum Zugriff auf und zur Interaktion mit Datendienstressourcen als Objekte verwendeten Datenklassen enthält. Die Datenklassen werden im Namespace NorthwindConsole.Northwind erstellt.

  6. Öffnen Sie die Programmdatei für die Konsolenanwendung, und fügen Sie die folgende using-Anweisung (Imports in Visual Basic) hinzu:

    Imports System.Data.Services.Client
    Imports NorthwindConsole.Northwind
    
    using System.Data.Services.Client;
    using Northwind;
    
  7. Fügen Sie in der Programmdatei den folgenden Code in der Main-Methode hinzu:

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

    Dieser Code fragt aus dem Northwind-Beispieldatendienst die Bestellungen und zugehörigen Einzelpositionen für den Kunden ALFKI ab.

  8. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das NorthwindConsole-Projekt, und wählen Sie Als Startprojekt festlegen aus.

  9. Drücken Sie F5, um die Anwendung zu starten.

    Die Projektmappe wird erstellt und die Clientanwendung wird gestartet. Daten werden vom Dienst angefordert und in der Konsole angezeigt.

Nächste Schritte

Sie haben erfolgreich eine einfache Clientanwendung erstellt, die auf den Northwind OData-Beispielfeed zugreift. Als Nächstes fügen Sie der Projektmappe ein ASP.NET-Projekt hinzu. Dieses Projekt wird eine schreibbare Version des Northwind OData-Beispieldiensts enthalten, die auf dem lokalen Computer ausgeführt wird:

Erstellen des Northwind-Datendiensts