Expresiones en consultas de LINQ to EntitiesExpressions in LINQ to Entities Queries

Una expresión es un fragmento de código que se puede evaluar como un valor, objeto, método o espacio de nombres único.An expression is a fragment of code that can be evaluated to a single value, object, method, or namespace. Las expresiones pueden contener un valor literal, una llamada a un método, un operador y sus operandos, o un nombre simple.Expressions can contain a literal value, a method call, an operator and its operands, or a simple name. 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.Simple names can be the name of a variable, type member, method parameter, namespace or type. 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.Expressions can use operators that in turn use other expressions as parameters, or method calls whose parameters are in turn other method calls. Por consiguiente, las expresiones pueden ser de muy simples a muy complejas.Therefore, expressions can range from simple to very complex.

En consultas LINQ to Entities, las expresiones pueden contener cualquier elemento permitido por los tipos dentro de la System.Linq.Expressions espacio de nombres, incluidas las expresiones lambda.In LINQ to Entities queries, expressions can contain anything allowed by the types within the System.Linq.Expressions namespace, including lambda expressions. Las expresiones que pueden utilizarse en LINQ a consultas de las entidades son un superconjunto de las expresiones que se puede usar para consultar el Entity FrameworkEntity Framework.The expressions that can be used in LINQ to Entities queries are a superset of the expressions that can be used to query the Entity FrameworkEntity Framework. Las expresiones que forman parte de las consultas en el Entity FrameworkEntity Framework están limitadas por las operaciones admitidas por ObjectQuery<T> y el origen de datos subyacente.Expressions that are part of queries against the Entity FrameworkEntity Framework are limited to operations supported by ObjectQuery<T> and the underlying data source.

En el ejemplo siguiente, la comparación en la cláusula Where es una expresión:In the following example, the comparison in the Where clause is an expression:

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

Construcciones de lenguaje específico, como C# unchecked, no tienen ningún significado en LINQ to Entities.Specific language constructs, such as C# unchecked, have no meaning in LINQ to Entities.

En esta secciónIn This Section

Expresiones constantesConstant Expressions

Expresiones de comparaciónComparison Expressions

Comparaciones NULLNull Comparisons

Expresiones de inicializaciónInitialization Expressions

Las relaciones, las propiedades de navegación y las claves externasRelationships, navigation properties and foreign keys

Vea tambiénSee also