Expressões constantesConstant Expressions

Uma expressão constante consiste em um valor constante.A constant expression consists of a constant value. Os valores constantes são convertidos diretamente às expressões constantes da árvore de comando, sem nenhuma conversão no cliente.Constant values are directly converted to constant command tree expressions, without any translation on the client. Isso inclui as expressões que levam a um valor constante.This includes expressions that result in a constant value. Portanto, o comportamento da fonte de dados deve ser esperado para todas as expressões que envolvem constantes.Therefore, data source behavior should be expected for all expressions involving constants. Isso pode levar ao comportamento que difere do comportamento de CLR.This can result in behavior that differs from CLR behavior.

O exemplo a seguir mostra uma expressão constante que é avaliada no servidor.The following example shows a constant expression that is evaluated on the server.

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

    Console.WriteLine("Sales order numbers:");
    foreach (string orderNum in salesInfo)
    {
        Console.WriteLine(orderNum);
    }
}
Dim totalDue = 200 + 3
Using context As New AdventureWorksEntities()
    Dim salesInfo = _
        From s In context.SalesOrderHeaders _
        Where s.TotalDue >= totalDue _
        Select s.SalesOrderNumber

    Console.WriteLine("Sales order numbers:")
    For Each orderNum As String In salesInfo
        Console.WriteLine(orderNum)
    Next
End Using

LINQ to Entities não dá suporte ao uso de uma classe de usuário como uma constante.LINQ to Entities does not support using a user class as a constant. No entanto, uma referência de propriedade em uma classe de usuário é considerada uma constante, e será convertida em uma expressão constante de árvore de comando e executada na fonte de dados.However, a property reference on a user class is considered a constant, and will be converted to a command tree constant expression and executed on the data source.

Consulte tambémSee also