Consumir fuentes de OData en una aplicación de consola (Tutorial rápido de WCF Data Services)
En esta tarea, creará una aplicación de consola en Visual Studio, agregará una referencia al servicio de ejemplo Northwind basado en Open Data Protocol (OData) en esta nueva aplicación y obtendrá acceso a la fuente de OData desde la aplicación usando las clases del servicio de datos del cliente y las bibliotecas cliente de Servicios de datos de Microsoft WCF generadas.
Para consumir el servicio de OData de ejemplo Northwind en una aplicación de consola
En el Explorador de soluciones, haga clic con el botón secundario en la solución, haga clic en Agregar y, a continuación, haga clic en Nuevo proyecto.
En Tipos de proyecto, haga clic en Windows y, a continuación, seleccione Aplicación de consola en el panel Plantillas.
Escriba NorthwindConsole como nombre del proyecto y haga clic en Aceptar.
Haga clic con el botón secundario en el nuevo proyecto NorthwindConsole, haga clic en Agregar referencia de servicio y, en el campo Dirección, escriba el URI del servicio de datos de ejemplo Northwind, de la manera siguiente:
http://services.odata.org/Northwind/Northwind.svc/
En el cuadro de texto Espacio de nombres, escriba Northwind y, a continuación, haga clic en Aceptar.
Esto agregará referencias a los ensamblados de Servicios de datos de Microsoft WCF necesarios. También agregará un nuevo archivo de código al proyecto, que contiene las clases de datos que se usan para obtener acceso e interactuar con los recursos del servicio de datos como objetos. Las clases de datos se crean en el espacio de nombres NorthwindConsole.Northwind.
Abra el archivo de programa de la aplicación de consola y agregue la siguiente instrucción using (Imports en Visual Basic):
Imports System.Data.Services.Client Imports NorthwindConsole.Northwind
using System.Data.Services.Client; using Northwind;
En el archivo de programa, agregue el código siguiente al método 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); }
Este código consulta el servicio de datos Northwind para conocer los pedidos y los artículos relacionados pertenecientes al cliente ALFKI
En el Explorador de soluciones, haga clic con el botón secundario en el proyecto NorthwindConsole y seleccione Establecer como proyecto de inicio.
Presione F5 para iniciar la aplicación.
Se compila la solución y se inicia la aplicación cliente. Los datos se solicitarán al servicio y se mostrarán en la consola.
Pasos siguientes
Ha creado correctamente una aplicación cliente sencilla que tiene acceso a la fuente de OData Northwind de ejemplo. A continuación, agregará un proyecto ASP.NET a la solución. Este proyecto hospedará una versión grabable del servicio OData de ejemplo Northwind que se ejecuta en el equipo local: