Partilhar via


Expressões em consultas LINQ to Entities

Uma expressão é um fragmento de código que pode ser avaliado para um único valor, objeto, método ou namespace. As expressões podem conter um valor literal, uma chamada de método, um operador e seus operandos ou um nome simples. Nomes simples podem ser o nome de uma variável, membro do tipo, parâmetro do método, namespace ou tipo. As expressões podem usar operadores que, por sua vez, usam outras expressões como parâmetros, ou chamadas de método cujos parâmetros são, por sua vez, outras chamadas de método. Portanto, as expressões podem variar de simples a muito complexas.

Nas consultas LINQ to Entities, as expressões podem conter qualquer coisa permitida pelos tipos dentro do System.Linq.Expressions namespace, incluindo expressões lambda. As expressões que podem ser usadas em consultas LINQ to Entities são um superconjunto das expressões que podem ser usadas para consultar o Entity Framework. As expressões que fazem parte de consultas no Entity Framework são limitadas a operações suportadas por ObjectQuery<T> e à fonte de dados subjacente.

No exemplo a seguir, a Where comparação na cláusula é uma expressão:

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

Construções de linguagem específicas, como C# unchecked, não têm significado em LINQ to Entities.

Nesta Secção

Expressões constantes

Expressões de comparação

Comparações nulas

Expressões de inicialização

Relações, propriedades de navegação e teclas estrangeiras

Consulte também