表達式是可評估為單一值、物件、方法或命名空間的程式代碼片段。 表達式可以包含常值、方法呼叫、運算元及其作數,或簡單名稱。 簡單名稱可以是變數、類型成員、方法參數、命名空間或類型的名稱。 表達式可以使用運算符,而這些運算符會使用其他表達式作為參數,或者方法呼叫的參數本身也是其他方法呼叫。 因此,表達式的範圍可以從簡單到非常複雜。
在 LINQ to Entities 查詢中,運算式可以包含在 System.Linq.Expressions 命名空間中的類型所允許的任何元素,包括 Lambda 運算式。 可用於 LINQ to Entities 查詢的運算式是可用來查詢 Entity Framework 的運算式超集。 屬於 Entity Framework 查詢一部分的表達式僅限於 ObjectQuery<T> 和基礎數據源所支持的作業。
在下列範例中,子句中的 Where 比較是表達式:
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
備註
特定語言建構,例如 C# unchecked,在 LINQ to Entities 中沒有任何意義。