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 Lambdaausdrücke. Die Ausdrücke, die in LINQ to Entities-Abfragen verwendet werden können, beinhalten die Ausdrücke, mit denen Entity Framework abgefragt werden kann. Ausdrücke, die Teil einer Entity Framework-Abfrage 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:

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

Hinweis

Bestimmte Sprachkonstrukte, wie C# unchecked, haben in LINQ to Entities keine Bedeutung.

In diesem Abschnitt

Constant Expressions (Konstante Ausdrücke)

Vergleichsausdrücke

NULL-Vergleiche

Initialisierungsausdrücke

Beziehungen, Navigationseigenschaften und Fremdschlüssel

Siehe auch