Compartir a través de


Expresiones en consultas de LINQ to Entities

Una expresión es un fragmento de código que se puede evaluar como un único valor, objeto, método o espacio de nombres. Las expresiones pueden contener un valor literal, una llamada de método, un operador y sus operandos, o un nombre simple. Los nombres simples pueden ser el nombre de una variable, un miembro de tipo, un parámetro de método, un espacio de nombres o un tipo. Las expresiones pueden usar operadores que, a su vez, usan otras expresiones como parámetros o llamadas a métodos cuyos parámetros son a su vez otras llamadas de método. Por lo tanto, las expresiones pueden variar de simple a muy compleja.

En las consultas LINQ to Entities, las expresiones pueden contener cualquier cosa permitida por los tipos del System.Linq.Expressions espacio de nombres, incluidas las expresiones lambda. Las expresiones que se pueden usar en las consultas LINQ to Entities son un superconjunto de las expresiones que se pueden usar para consultar Entity Framework. Las expresiones que forman parte de las consultas en Entity Framework se limitan a las operaciones admitidas por ObjectQuery<T> y el origen de datos subyacente.

En el ejemplo siguiente, la comparación en la cláusula Where es una expresión.

Decimal totalDue = 200;
using (AdventureWorksEntities context = new AdventureWorksEntities())
{
    IQueryable<int> salesInfo =
        from s in context.SalesOrderHeaders
        where s.TotalDue >= totalDue
        select s.SalesOrderID;

    Console.WriteLine("Sales order info:");
    foreach (int orderNumber in salesInfo)
    {
        Console.WriteLine("Order number: " + orderNumber);
    }
}
Dim totalDue = 200
Using context As New AdventureWorksEntities()
    Dim salesInfo = _
        From s In context.SalesOrderHeaders _
        Where s.TotalDue >= totalDue _
        Select s.SalesOrderID

    Console.WriteLine("Sales order info:")
    For Each orderNumber As Integer In salesInfo
        Console.WriteLine("Order number: " & orderNumber)
    Next
End Using

Nota:

Las construcciones de lenguaje específicas, como C# unchecked, no tienen ningún significado en LINQ to Entities.

En esta sección

Expresiones constantes

Expresiones de comparación

Comparaciones nulas

Expresiones de inicialización

Relaciones, propiedades de navegación y claves externas

Consulte también