Share via


Cómo ejecutar una consulta que devuelve un tipo de entidad (Entity Framework)

En este tema se proporcionan ejemplos de cómo ejecutar una consulta de Entity SQL que devuelve una colección de instancias de un tipo de entidad. Después recorre en iteración la colección de productos y muestra el nombre y el identificador de cada uno. Se muestra el mismo ejemplo con cada una de las siguientes tecnologías de consulta de Entity Framework:

  • LINQ to Entities

  • Entity SQL con ObjectQuery<T>

  • Métodos del generador de consultas de ObjectQuery<T>

Los ejemplos de este tema se basan en el modelo AdventureWorks Sales. Para ejecutar el código de este ejemplo, debe haber agregado ya el modelo AdventureWorks Sales al proyecto y haber configurado el proyecto para usar Entity Framework. Para ello, complete los procedimientos de Cómo configurar manualmente un proyecto de Entity Framework y Cómo definir manualmente un modelo Entity Data Model (Entity Framework). También puede utilizar el Asistente para Entity Data Model con el fin de definir el modelo AdventureWorks Sales. Para obtener más información, vea Cómo usar el Asistente para Entity Data Model (Entity Framework).

Ejemplo

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

Using AWEntities As New AdventureWorksEntities
    Dim products As ObjectQuery(Of Product) = AWEntities.Product

    Dim productsQuery = _
        From product In products _
        Select product

    Console.WriteLine("Product Names:")
    For Each product In productsQuery
        Console.WriteLine(product.Name)
    Next
End Using
using (AdventureWorksEntities AWEntities = new AdventureWorksEntities())
{
    ObjectQuery<Product> products = AWEntities.Product;
    IQueryable<Product> productsQuery = from product in products
                                        select product;

    Console.WriteLine("Product Names:");
    foreach (var prod in productsQuery)
    {
        Console.WriteLine(prod.Name);
    }
}

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

Using advWorksContext As AdventureWorksEntities = New AdventureWorksEntities
    Try
        Dim queryString As String = "SELECT VALUE Product FROM AdventureWorksEntities.Product AS Product"

        Dim query As New ObjectQuery(Of Product)(queryString, advWorksContext, MergeOption.NoTracking)

        ' Iterate through the collection of Product items.
        For Each result As Product In query
            Console.WriteLine("Product Name: {0} Product ID: {1}", _
            result.Name, result.ProductID)
        Next

    Catch exception As EntityException
        Console.WriteLine(exception.ToString)
    Catch ex As InvalidOperationException
        Console.WriteLine(ex.ToString())
    End Try
End Using
using (AdventureWorksEntities advWorksContext =
    new AdventureWorksEntities())
{
    try
    {
        string queryString =
            @"SELECT VALUE Product FROM AdventureWorksEntities.Product AS Product";

        ObjectQuery<Product> productQuery =
            new ObjectQuery<Product>(queryString, advWorksContext, MergeOption.NoTracking);

        // Iterate through the collection of Product items.
        foreach (Product result in productQuery)
            Console.WriteLine("Product Name: {0}; Product ID: {1}",
                result.Name, result.ProductID);
    }
    catch (EntityException ex)
    {
        Console.WriteLine(ex.ToString());
    }
    catch (InvalidOperationException ex)
    {
        Console.WriteLine(ex.ToString());
    }
}

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

Using advWorksContext As AdventureWorksEntities = _
    New AdventureWorksEntities
    Try
        Dim query As ObjectQuery(Of Product) = _
            advWorksContext.Product

        ' Iterate through the collection of Product items.
        For Each result As Product In query
            Console.WriteLine("Product Name:{0}Product ID: {1}", _
            result.Name, result.ProductID)
        Next

    Catch exception As EntitySqlException
        Console.WriteLine(exception.ToString)
    End Try
End Using
using (AdventureWorksEntities advWorksContext =
    new AdventureWorksEntities())
{
    try
    {
        ObjectQuery<Product> productQuery = advWorksContext.Product;

        // Iterate through the collection of Product items.
        foreach (Product result in productQuery)
            Console.WriteLine("Product Name: {0}; Product ID: {1}",
                result.Name, result.ProductID);
    }
    catch (EntitySqlException ex)
    {
        Console.WriteLine(ex.ToString());
    }
}

Vea también

Tareas

Cómo ejecutar una consulta que devuelve un tipo anónimo (Entity Framework)
Cómo ejecutar una consulta que devuelve un tipo primitivo (Entity Framework)
Cómo ejecutar una consulta parametrizada (Entity Framework)

Otros recursos

Consultar un Entity Data Model (tareas de Entity Framework)