LINQ to Entities 查询中的表达式

表达式是代码片段,可计算为单个值、对象、方法或命名空间。 表达式可以包含文本值、方法调用、运算符及其作数或简单名称。 简单名称可以是变量、类型成员、方法参数、命名空间或类型的名称。 表达式可以使用运算符,而这些运算符可以将其他表达式作为参数;也可以进行方法调用,而这些方法调用的参数本身可能是其他方法的调用。 因此,表达式的范围可以是简单到非常复杂的。

在 LINQ to Entities 查询中,表达式可以包含命名空间中 System.Linq.Expressions 类型允许的任何内容,包括 lambda 表达式。 LINQ to Entities 查询中使用的表达式是可用于查询 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 中没有意义。

本节中

常量表达式

比较表达式

Null 比较

初始化表达式

关系、导航属性和外键

另请参阅