Espressioni in query di LINQ to Entities

Un'espressione è un frammento di codice che può restituire un singolo valore, oggetto, metodo o spazio dei nomi. Le espressioni possono contenere un valore letterale, una chiamata al metodo, un operatore e i relativi operandi oppure un nome semplice, ad esempio il nome di una variabile, un membro di un tipo, un parametro di un metodo, uno spazio dei nomi o un tipo. Le espressioni possono usare operatori che a loro volta usano altre espressioni come parametri oppure chiamate a metodi i cui parametri sono a loro volta altre chiamate a metodi. Le espressioni possono pertanto essere da semplici a molto complesse.

Nelle query di LINQ to Entities le espressioni possono contenere qualsiasi elemento consentito dai tipi all'interno dello spazio dei nomi System.Linq.Expressions, incluse le espressioni lambda. Le espressioni che possono essere usate nelle query LINQ to Entities sono un superset delle espressioni che possono essere usate per eseguire query su Entity Framework. Le espressioni che fanno parte delle query su Entity Framework sono limitate a operazioni supportate da ObjectQuery<T> e dall'origine dati sottostante.

Nell'esempio seguente il confronto nella clausola Where è un'espressione:

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

Nota

I costrutti di linguaggio specifici, ad esempio C# unchecked, non hanno significato in LINQ to Entities.

In questa sezione

Espressioni costanti

Espressioni di confronto

Confronti Null

Espressioni di inizializzazione

Relazioni, proprietà di navigazione e chiavi esterne

Vedi anche