Expressões em consultas LINQ to EntitiesExpressions in LINQ to Entities Queries

Uma expressão é um fragmento de código que pode ser avaliado como um único valor, objeto, método ou namespace.An expression is a fragment of code that can be evaluated to a single value, object, method, or namespace. As expressões podem conter um valor literal, uma chamada de método, um operador e seus operandos ou um nome simples.Expressions can contain a literal value, a method call, an operator and its operands, or a simple name. Os nomes simples podem ser o nome de uma variável, um membro de tipo, um parâmetro de método, um namespace ou um tipo.Simple names can be the name of a variable, type member, method parameter, namespace or type. As expressões podem usar operadores que, por sua vez, usam outras expressões como parâmetros ou chamadas de métodos cujos parâmetros são, por sua vez, outras chamadas de 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. Portanto, as expressões podem variar de simples a muito complexas.Therefore, expressions can range from simple to very complex.

Em consultas LINQ to Entities, as expressões podem conter qualquer coisa permitida pelos tipos dentro do System.Linq.Expressions namespace, incluindo expressões lambda.In LINQ to Entities queries, expressions can contain anything allowed by the types within the System.Linq.Expressions namespace, including lambda expressions. As expressões que podem ser usadas em LINQ to Entities consultas são um superconjunto das expressões que podem ser usadas para consultar o Entity Framework. as expressões que fazem parte das consultas no Entity Framework são limitadas às operações com suporte ObjectQuery<T> no e na fonte de dados subjacente.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 Framework.Expressions that are part of queries against the Entity Framework are limited to operations supported by ObjectQuery<T> and the underlying data source.

No exemplo a seguir, a comparação na cláusula Where é uma expressão: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

Observação

Construções de linguagem específicas, como C# unchecked , não têm significado em LINQ to Entities.Specific language constructs, such as C# unchecked, have no meaning in LINQ to Entities.

Nesta seçãoIn This Section

Expressões constantesConstant Expressions

Expressões de ComparaçãoComparison Expressions

Comparações nulasNull Comparisons

Expressões de inicializaçãoInitialization Expressions

Relações, propriedades de navegação e chaves estrangeirasRelationships, navigation properties and foreign keys

Consulte tambémSee also