Expresiones en consultas de LINQ to Entities

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

En las consultas de LINQ to Entities , las expresiones pueden contener cualquier elemento permitido por los tipos dentro del espacio de nombres System.Linq.Expressions, incluyéndose las expresiones lambda. Las expresiones que se pueden utilizar en las consultas de LINQ to Entities son un supraconjunto de las expresiones que se pueden utilizar para consultar Entity Framework . Las expresiones que forman parte de consultas en Entity Framework están limitadas por 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:

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
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);                    
    }
}
Bb738645.note(es-es,VS.100).gifNota:
Las estructuras de un lenguaje concreto, como uncheckedde C#, no tienen ningún significado en LINQ to Entities .

En esta sección

Expresiones constantes

Expresiones de comparación

Comparaciones de NULL

Expresiones de inicialización

Propiedades de navegación

Vea también

Conceptos

ADO.NET Entity Framework