Kifejezések a LINQ-ban entitások lekérdezéseihez
A kifejezés egy kódrészlet, amely egyetlen értékre, objektumra, metódusra vagy névtérre értékelhető ki. A kifejezések tartalmazhatnak literális értéket, metódushívást, operátort és operandusokat, vagy egy egyszerű nevet. Az egyszerű nevek lehetnek változók, típustagok, metódusparaméterek, névtér vagy típus nevei. A kifejezések olyan operátorokat is használhatnak, amelyek más kifejezéseket használnak paraméterekként, vagy metódushívásokat, amelyek paraméterei más metódushívások. Ezért a kifejezések az egyszerűtől a nagyon összetettig terjedhetnek.
A LINQ–Entitások lekérdezésekben a kifejezések tartalmazhatnak bármit, amit a névtéren belüli típusok megengednek, beleértve a System.Linq.Expressions lambda kifejezéseket is. A LINQ-ban az entitások lekérdezéseihez használható kifejezések az entitás-keretrendszer lekérdezéséhez használható kifejezések szuperhalmazai. Az entity framework lekérdezéseinek részét képező kifejezések a mögöttes adatforrás által ObjectQuery<T>
támogatott műveletekre korlátozódnak.
A következő példában a záradékban szereplő Where
összehasonlítás egy kifejezés:
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
Feljegyzés
Az adott nyelvi szerkezeteknek, például a C# unchecked
-nak nincs jelentésük a LINQ-ban az Entitások között.
A szakasz tartalma
Kapcsolatok, navigációs tulajdonságok és idegen kulcsok