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.