Dela via


Konstanta uttryck

Ett konstant uttryck består av ett konstant värde. Konstanta värden konverteras direkt till konstanta kommandoträdsuttryck, utan översättning på klienten. Detta inkluderar uttryck som resulterar i ett konstant värde. Därför bör datakällans beteende förväntas för alla uttryck som involverar konstanter. Detta kan leda till beteende som skiljer sig från CLR-beteende.

I följande exempel visas ett konstant uttryck som utvärderas på servern.

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 till entiteter stöder inte användning av en användarklass som en konstant. En egenskapsreferens för en användarklass betraktas dock som en konstant och konverteras till ett kommandoträdskonstantuttryck och körs på datakällan.

Se även