Delen via


Expressies in LINQ naar entiteitenquery's

Een expressie is een codefragment dat kan worden geëvalueerd op één waarde, object, methode of naamruimte. Expressies kunnen een letterlijke waarde, een methodeaanroep, een operator en de operanden of een eenvoudige naam bevatten. Eenvoudige namen kunnen de naam zijn van een variabele, type lid, methodeparameter, naamruimte of type. Expressies kunnen operatoren gebruiken die op hun beurt andere expressies gebruiken als parameters of methode-aanroepen waarvan de parameters op hun beurt andere methode-aanroepen zijn. Expressies kunnen daarom variëren van eenvoudig tot zeer complex.

In LINQ to Entities-query's kunnen expressies alles bevatten dat is toegestaan door de typen binnen de System.Linq.Expressions naamruimte, inclusief lambda-expressies. De expressies die kunnen worden gebruikt in LINQ naar entiteitenquery's zijn een superset van de expressies die kunnen worden gebruikt om query's uit te voeren op Entity Framework. Expressies die deel uitmaken van query's voor het Entity Framework, zijn beperkt tot bewerkingen die worden ondersteund door ObjectQuery<T> en de onderliggende gegevensbron.

In het volgende voorbeeld is de vergelijking in de Where component een expressie:

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

Notitie

Specifieke taalconstructies, zoals C# unchecked, hebben geen betekenis in LINQ voor entiteiten.

In dit gedeelte

Constante expressies

Vergelijkingsexpressies

Null-vergelijkingen

Initialisatie-expressies

Relaties, navigatie-eigenschappen en refererende sleutels

Zie ook