Expressions dans les requêtes LINQ to Entities
Une expression est un fragment de code qui peut correspondre à une valeur, un objet, une méthode ou un espace de noms. Elle peut contenir une valeur littérale, un appel de méthode, un opérateur et ses opérandes ou un nom simple. Un nom simple peut être le nom d'une variable, d'un membre de type, d'un paramètre de méthode, d'un espace de noms ou d'un type. Les expressions peuvent utiliser des opérateurs qui à leur tour utilisent d'autres expressions comme des paramètres, ou des appels de méthode dont les paramètres sont à leur tour d'autres appels de méthode. Par conséquent, les expressions peuvent être simples ou très complexes.
Dans les requêtes LINQ to Entities , les expressions peuvent contenir tout élément autorisé par les types de l'espace de noms System.Linq.Expressions, y compris des expressions lambda. Les expressions utilisables dans les requêtes LINQ to Entities sont un surensemble des expressions qui permettent d'interroger Entity Framework . Les expressions qui font partie des requêtes sur Entity Framework sont limitées aux opérations prises en charge par ObjectQuery<T> et la source de données sous-jacente.
Dans l'exemple suivant, la comparaison dans la clause Where est une expression :
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);
}
}
Remarque : |
---|
Les constructions de langage spécifiques, telles que C# unchecked, n'ont aucune signification dans LINQ to Entities . |