Esta documentación está archivada y no tiene mantenimiento.

Cómo: Ejecutar una consulta que devuelve una colección de tipos anónimos (Entity Framework)

En este tema se ofrecen ejemplos de cómo ejecutar consultas que devuelven una colección de instancias de un tipo de anónimo. Un tipo anónimo es un tipo que no está definido en el modelo conceptual. Por ejemplo, la siguiente consulta de Entity SQL devuelve una colección de tipos anónimos que contiene filas con dos columnas (un entero para ProductID y una cadena para Name): "SELECT p.ProductID, p.Name FROM AdventureWorksEntities.Products as p". El siguiente ejemplo devuelve una colección de productos, con el tipo Product definido en el modelo conceptual: "SELECT p FROM AdventureWorksEntities.Products as p".

El mismo ejemplo se muestra con cada una de las siguientes tecnologías de consulta de Entity Framework :

El ejemplo de este tema se basa en el modelo AdventureWorks Sales. Para ejecutar el código de este tema, debe haber agregado el modelo AdventureWorks Sales al proyecto y haber configurado el proyecto para que use Entity Framework. Para obtener más información, vea Cómo: Usar el Asistente para Entity Data Model (Entity Framework) o Cómo: Configurar manualmente un proyecto de Entity Framework y Cómo: Definir manualmente un modelo Entity Data Model (Entity Framework).

Ejemplo

A continuación se muestra el ejemplo de LINQ to Entities .

using (AdventureWorksEntities context = new AdventureWorksEntities())
{
    var query =
        from product in context.Products
        select new
        {
            ProductId = product.ProductID,
            ProductName = product.Name
        };

    Console.WriteLine("Product Info:");
    foreach (var productInfo in query)
    {
        Console.WriteLine("Product Id: {0} Product name: {1} ",
            productInfo.ProductId, productInfo.ProductName);
    }
}

A continuación se muestra el ejemplo de Entity SQL .

using (AdventureWorksEntities context =
    new AdventureWorksEntities())
{
    string myQuery = @"SELECT p.ProductID, p.Name FROM 
        AdventureWorksEntities.Products as p";

    foreach (DbDataRecord rec in
        new ObjectQuery<DbDataRecord>(myQuery, context))
    {
        Console.WriteLine("ID {0}; Name {1}", rec[0], rec[1]);
    }
}

A continuación se muestra el ejemplo del método del generador de consultas.

using (AdventureWorksEntities context =
    new AdventureWorksEntities())
{
    // Use the Select method to define the projection.
    ObjectQuery<DbDataRecord> query =
        context.Products.Select("it.ProductID, it.Name");

    // Iterate through the collection of data rows.
    foreach (DbDataRecord rec in query)
    {
        Console.WriteLine("ID {0}; Name {1}", rec[0], rec[1]);
    }
}

Vea también

Mostrar: