Výrazy v dotazech LINQ to Entities

Výraz je fragment kódu, který lze vyhodnotit na jednu hodnotu, objekt, metodu nebo obor názvů. Výrazy mohou obsahovat literální hodnotu, volání metody, operátor a jeho operandy nebo jednoduchý název. Jednoduchými názvy mohou být název proměnné, člena typu, parametru metody, oboru názvů nebo typu. Výrazy mohou používat operátory, které zase používají jiné výrazy jako parametry, nebo volání metody, jejichž parametry jsou zase jiné volání metody. Výrazy proto mohou být v rozsahu od jednoduchých až po velmi složité.

V dotazech LINQ to Entities můžou výrazy obsahovat cokoli povoleného typy v rámci System.Linq.Expressions oboru názvů, včetně výrazů lambda. Výrazy, které lze použít v dotazech LINQ to Entities, jsou nadmnožinou výrazů, které lze použít k dotazování entity Framework. Výrazy, které jsou součástí dotazů na Entity Framework, jsou omezené na operace podporované ObjectQuery<T> v podkladovém zdroji dat.

V následujícím příkladu Where je porovnání v klauzuli výraz:

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

Poznámka:

Konkrétní jazykové konstrukty, jako je C# unchecked, nemají v LINQ to Entities žádný význam.

V tomto oddílu

Výrazy konstant

Výrazy porovnání

Porovnávání s hodnotou Null

Výrazy inicializace

Relace, navigační vlastnosti a cizí klíče

Viz také