Wyrażenia stałe
Wyrażenie stałe składa się z wartości stałej. Stałe wartości są bezpośrednio konwertowane na stałe wyrażenia drzewa poleceń bez żadnego tłumaczenia na klienta. Obejmuje to wyrażenia, które powodują stałą wartość. Dlatego zachowanie źródła danych powinno być oczekiwane dla wszystkich wyrażeń obejmujących stałe. Może to spowodować zachowanie, które różni się od zachowania ŚRODOWISKA CLR.
W poniższym przykładzie pokazano wyrażenie stałe, które jest oceniane na serwerze.
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 (Jednostki LINQ to Entities) nie obsługuje używania klasy użytkownika jako stałej. Jednak odwołanie do właściwości w klasie użytkownika jest uznawane za stałą i zostanie przekonwertowane na wyrażenie stałe drzewa poleceń i wykonane w źródle danych.