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);                    
    }
}
Bb738645.note(de-de,VS.100).gifHinweis:
Bestimmte Sprachkonstrukte, wie unchecked in C#, haben in LINQ to Entities keine Bedeutung.

Themen dieses Abschnitts

Konstante Ausdrücke

Vergleichsausdrücke

NULL-Vergleiche

Initialisierungsausdrücke

Navigationseigenschaften

Siehe auch

Konzepte

ADO.NET Entity Framework