Uttryck i LINQ till entitetsfrågor
Ett uttryck är ett fragment av kod som kan utvärderas till ett enda värde, ett objekt, en metod eller ett namnområde. Uttryck kan innehålla ett literalvärde, ett metodanrop, en operator och dess operander eller ett enkelt namn. Enkla namn kan vara namnet på en variabel, typmedlem, metodparameter, namnområde eller typ. Uttryck kan använda operatorer som i sin tur använder andra uttryck som parametrar eller metodanrop vars parametrar i sin tur är andra metodanrop. Därför kan uttryck variera från enkla till mycket komplexa.
I LINQ till entitetsfrågor kan uttryck innehålla allt som tillåts av typerna i System.Linq.Expressions namnområdet, inklusive lambda-uttryck. De uttryck som kan användas i LINQ till entitetsfrågor är en supermängd av de uttryck som kan användas för att köra frågor mot Entity Framework. Uttryck som ingår i frågor mot Entity Framework är begränsade till åtgärder som stöds av ObjectQuery<T>
och den underliggande datakällan.
I följande exempel är jämförelsen Where
i -satsen ett uttryck:
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
Kommentar
Specifika språkkonstruktioner, till exempel C# unchecked
, har ingen betydelse i LINQ för entiteter.
I det här avsnittet
Relationer, navigeringsegenskaper och sekundärnycklar