Tutorial: crear el modelo Adventure Works Sales y una consulta (C#)

Este tutorial proporciona un escenario completo básico de LINQ to Entities, con las mínimas dificultades. Creará el modelo AdventureWorks Sales, que contiene entidades y asociaciones basadas en las tablas Address, Contact, Product, SalesOrderHeader y SalesOrderDetail de la base de datos de ejemplo AdventureWorks. A continuación, creará una consulta simple para tener una lista de todos los productos en color rojo del inventario de AdventureWorks.

Requisitos previos

Este tutorial requiere la base de datos de ejemplo AdventureWorks. Si no tiene esta base de datos en su equipo de desarrollo, puede descargarla de la página Microsoft SQL Server Community & Samples en el sitio CodePlex.

Información general

Este tutorial se compone de cuatro tareas principales:

  • Crear una solución de LINQ to Entities en Visual Studio 2008.

  • Crear el modelo AdventureWorks Sales.

  • Crear una consulta simple para ejecutarla en el modelo Sales.

  • Ejecutar la consulta y observar los resultados.

Crear una solución de LINQ to Entities

En esta primera tarea, va a crear una solución de Visual Studio que contiene las referencias necesarias para generar y ejecutar un proyecto de LINQ to Entities.

Para crear una solución de LINQ to Entities en C#

  1. En el menú Archivo de Visual Studio, elija Nuevo y haga clic en Proyecto.

  2. En el panel Tipos de proyecto del cuadro de diálogo Nuevo proyecto, haga clic en Visual C#.

  3. Seleccione .NET Framework 3.5 en el menú desplegable.

  4. En el panel Plantillas, haga clic en Aplicación de consola.

  5. En el cuadro Nombre, escriba LinqToEntitesConsoleApp.

  6. En el cuadro Ubicación, seleccione una ubicación para los archivos de su proyecto y, a continuación, haga clic en Aceptar.

  7. En el menú Proyecto, haga clic sucesivamente en Agregar referencia, en la ficha .NET, en el ensamblado System.Data.Entity y, a continuación, haga clic en Aceptar.

  8. Agregue una directiva using para el espacio de nombres System.Data.Objects en el archivo de código fuente.

Crear el modelo AdventureWorks Sales

En esta tarea, va a crear el modelo AdventureWorks Sales mediante el Asistente para Entity Data Model y va a hacer referencia al modelo en su proyecto.

Para crear el modelo AdventureWorks Sales y hacer referencia al mismo

  1. En el menú Proyecto, haga clic en Agregar nuevo elemento.

  2. En el panel Plantillas del cuadro de diálogo Agregar nuevo elemento, seleccione ADO.NET Entity Data Model. Asigne el nombre AdventureWorksSalesModel al modelo y, a continuación, haga clic en Agregar.

  3. En el cuadro de diálogo Elegir contenido de Model, seleccione Generar desde la base de datos y, a continuación, haga clic en Siguiente.

  4. En la ventana Elegir la conexión de datos, seleccione una conexión de AdventureWorks existente en la lista, o cree una conexión nueva a una instancia de SQL Server que tenga la base de datos de ejemplo AdventureWorks.

  5. Guarde la configuración de la conexión de entidad en el archivo App.Config como AdventureWorksEntities y, a continuación, haga clic en Siguiente.

  6. En el cuadro de diálogo Elija los objetos de base de datos, borre todos los objetos, expanda Tablas y seleccione los objetos de tabla siguientes:

    • Address (Person)

    • Contact (Person)

    • Product (Production)

    • SalesOrderDetail (Sales)

    • SalesOrderHeader (Sales)

  7. Asigne el nombre AdventureSalesWorksModel al espacio de nombres del modelo y haga clic en Finalizar.

  8. Se abre la vista Explorador de modelos, mostrando las entidades en el modelo AdventureWorks Sales. Haga clic en el botón de guardar y seleccione la ficha Program.cs para volver al código fuente.

  9. Agregue una instrucción using para AdventureWorksSalesModel en su archivo de código fuente.

Crear una consulta simple

En este paso, va a crear una consulta para buscar los productos en color rojo del inventario de AdventureWorks. La propia variable de consulta solo almacena los comandos de consulta si la consulta está diseñada para devolver una secuencia de valores. La ejecución real de la consulta se aplaza hasta que se procese una iteración en la variable de consulta en un bucle foreach. Este enfoque se denomina ejecución diferida. Para obtener más información, vea Ejecución de la consulta.

Para crear una consulta simple

  • Escriba o pegue el código siguiente en el método Main.
using (AdventureWorksEntities AWEntities = new AdventureWorksEntities())
{
    ObjectQuery<Product> products = AWEntities.Product;

    IQueryable<Product> query =
        from product in products
        where product.Color == "Red"
        select product;

    foreach (Product product in query)
    {
        Console.WriteLine("Name: {0}", product.Name);
        Console.WriteLine("Product number: {0}", product.ProductNumber);
        Console.WriteLine("List price: ${0}", product.ListPrice);
        Console.WriteLine("");
    }
}

//Prevent the console window from closing.
Console.WriteLine("Hit Enter...");
Console.Read();

Ejecutar la consulta

En este paso es donde realmente ejecutará la consulta. La expresión de consulta creada en el paso anterior no se evalúa hasta que se necesitan los resultados. Cuando se inicia la iteración en un bucle foreach, la consulta se ejecuta en el modelo AdventureWorks Sales y se materializan los resultados.

Para ejecutar la consulta

  1. Presione F5 para ejecutar la aplicación en modo de depuración.

  2. Los resultados de la consulta deben aparecer en la ventana de la consola.

  3. Presione ENTRAR en la ventana de la consola para cerrar la aplicación.

Vea también

Tareas

Cómo usar el Asistente para Entity Data Model (Entity Framework)

Conceptos

Información general de LINQ to Entities