Выражения в запросах LINQ to Entities
Выражение представляет собой фрагмент кода, результатом вычисления которого является единственное значение, объект, метод или пространство имен. Выражение может содержать литеральное значение, вызов метода, оператор с операндами или простое имя. Простые имена могут быть именами переменной, элемента типа, параметра метода, пространства имен или типа. В выражениях могут использоваться операторы, которые, в свою очередь, используют в качестве параметров другие выражения или вызовы методов, параметрами которых являются другие вызовы методов. Таким образом, выражения могут быть как простыми, так и очень сложными.
Выражения в запросах LINQ to Entities могут содержать любые объекты, допустимые типами в пространстве имен System.Linq.Expressions, включая лямбда-выражения. Набор выражений, используемых в запросах LINQ to Entities , является надмножеством выражений, которые могут использоваться в запросах Entity Framework . Выражения, входящие в запросы к Entity Framework , ограничены набором операций, поддерживаемых ObjectQuery<T> и базовым источником данных.
В следующем примере сравнение в предложении Where является следующим выражением.
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
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);
}
}
![]() |
---|
Особые языковые конструкции, такие как unchecked в C#, в LINQ to Entities значения не имеют. |