Wyrażenia w zapytaniach składnika LINQ to Entities
Wyrażenie to fragment kodu, który można ocenić na pojedynczą wartość, obiekt, metodę lub przestrzeń nazw. Wyrażenia mogą zawierać wartość literału, wywołanie metody, operator i jego operandy lub prostą nazwę. Proste nazwy mogą być nazwą zmiennej, składowej typu, parametru metody, przestrzeni nazw lub typu. Wyrażenia mogą używać operatorów, które z kolei używają innych wyrażeń jako parametrów lub wywołań metod, których parametry są z kolei innymi wywołaniami metod. W związku z tym wyrażenia mogą wahać się od prostych do bardzo złożonych.
W zapytaniach LINQ to Entities wyrażenia mogą zawierać dowolne elementy dozwolone przez typy w System.Linq.Expressions przestrzeni nazw, w tym wyrażenia lambda. Wyrażenia, które mogą być używane w zapytaniach LINQ to Entities, są nadzbiorem wyrażeń, które mogą służyć do wykonywania zapytań dotyczących platformy Entity Framework. Wyrażenia, które są częścią zapytań względem programu Entity Framework, są ograniczone do operacji obsługiwanych przez ObjectQuery<T>
i bazowe źródło danych.
W poniższym przykładzie porównanie w klauzuli Where
jest wyrażeniem:
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
Uwaga
Określone konstrukcje języka, takie jak C# unchecked
, nie mają znaczenia w linQ to Entities.
W tej sekcji
Relacje, właściwości nawigacji i klucze obce