Condividi tramite


Utilizzo di feed OData in un'applicazione console (Guida rapida di WCF Data Services)

In questa attività verrà creata un'applicazione console in Visual Studio, verrà aggiunto un riferimento al servizio Northwind di esempio basato su OData (Open Data Protocol) in questa nuova applicazione e verrà eseguito l'accesso al feed OData dall'applicazione client utilizzando le classi del servizio dati e la libreria client di WCF Data Services generate.

Per utilizzare il servizio Northwind di esempio basato su OData in un'applicazione console

  1. In Esplora soluzioni fare clic con il pulsante destro del mouse sulla soluzione, scegliere Aggiungi, quindi fare clic su Nuovo progetto.

  2. In Tipi progetto fare clic su Finestre, quindi selezionare Applicazione console nel riquadro Modelli.

  3. Immettere NorthwindConsole come nome del progetto, quindi fare clic su OK.

  4. Fare clic con il pulsante destro del mouse sul nuovo progetto NorthwindConsole, scegliere Aggiungi riferimento al servizio e nel campo Indirizzo immettere l'URI del servizio dati Northwind di esempio come segue:

    http://services.odata.org/Northwind/Northwind.svc/
    
  5. Nella casella di testo Spazio dei nomi digitare Northwind, quindi scegliere OK.

    Verranno aggiunti riferimenti agli assembly di WCF Data Services richiesti. Verrà inoltre aggiunto un nuovo file di codice al progetto che contiene le classi di dati utilizzate per accedere e interagire con le risorse del servizio dati come oggetti. Le classi di dati vengono create nello spazio dei nomi NorthwindConsole.Northwind.

  6. Aprire il file di programma per l'applicazione console e aggiungere l'istruzione using seguente (Imports in Visual Basic):

    Imports System.Data.Services.Client
    Imports NorthwindConsole.Northwind
    
    using System.Data.Services.Client;
    using Northwind;
    
  7. Nel file di programma aggiungere il codice seguente nel metodo 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);
    }
    

    Il codice esegue una query sul servizio dati Northwind per gli ordini e le voci correlate che appartengono al cliente ALFKI.

  8. In Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto NorthwindConsole e scegliere Imposta come progetto di avvio.

  9. Premere F5 per avviare l’applicazione.

    La soluzione viene compilata e l'applicazione client viene avviata. I dati vengono richiesti dal servizio e visualizzati nella console.

Passaggi successivi

La creazione di una semplice applicazione client che accede al feed OData Northwind di esempio è stata completata. Successivamente verrà illustrato come aggiungere un progetto ASP.NET alla soluzione. Questo progetto ospiterà una versione scrivibile del servizio Northwind di esempio basato su OData in esecuzione nel computer locale:

Creazione del servizio dati Northwind