Ausdrücke in LINQ to Entities-Abfragen
Ein Ausdruck ist ein Codefragment, das als einzelner Wert, einzelnes Objekt, einzelne Methode oder einzelner Namespace ausgewertet werden kann. Ausdrücke können einen literalen Wert, einen Methodenaufruf, einen Operator und die entsprechenden Operanden oder einen einfachen Namen enthalten. Einfache Namen können der Name einer Variablen, eines Typmembers, eines Methodenparameters, eines Namespaces oder eines Typs sein. Ausdrücke können Operatoren verwenden, die wiederum andere Ausdrücke als Parameter oder Methodenaufrufe verwenden können, deren Parameter wiederum andere Methodenaufrufe darstellen. Die Bandbreite der möglichen Ausdrücke reicht daher von einfach bis sehr komplex.
In LINQ to Entities -Abfragen können Ausdrücke alle im System.Linq.Expressions-Namespace zulässigen Typen enthalten, einschließlich Lambda-Ausdrücke. Die Ausdrücke, die in LINQ to Entities -Abfragen verwendet werden können, umfassen die Ausdrücke, mit denen das Entity Framework abgefragt werden kann. Ausdrücke, die Teil einer Abfrage des Entity Framework sind, sind auf Operationen eingeschränkt, die von ObjectQuery<T> und der zugrunde liegenden Datenquelle unterstützt werden.
Im folgenden Beispiel ist der Vergleich in der Where-Klausel ein Ausdruck:
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);
}
}
Hinweis: |
---|
Bestimmte Sprachkonstrukte, wie unchecked in C#, haben in LINQ to Entities keine Bedeutung. |