Expressions dans les requêtes LINQ to EntitiesExpressions in LINQ to Entities Queries

Une expression est un fragment de code qui peut correspondre à une valeur, un objet, une méthode ou un espace de noms.An expression is a fragment of code that can be evaluated to a single value, object, method, or namespace. Elle peut contenir une valeur littérale, un appel de méthode, un opérateur et ses opérandes ou un nom simple.Expressions can contain a literal value, a method call, an operator and its operands, or a simple name. 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.Simple names can be the name of a variable, type member, method parameter, namespace or 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.Expressions can use operators that in turn use other expressions as parameters, or method calls whose parameters are in turn other method calls. Par conséquent, les expressions peuvent être simples ou très complexes.Therefore, expressions can range from simple to very complex.

Dans LINQ to Entities requêtes, les expressions peuvent contenir tout ce qui est autorisé par System.Linq.Expressions les types dans l’espace de noms, y compris les expressions lambda.In LINQ to Entities queries, expressions can contain anything allowed by the types within the System.Linq.Expressions namespace, including lambda expressions. Les expressions qui peuvent être utilisées dans les requêtes LINQ to Entities sont un sur-ensemble des expressions qui peuvent être utilisées pour interroger le Entity Framework. les expressions qui font partie des requêtes sur les Entity Framework sont limitées ObjectQuery<T> aux opérations prises en charge par et source de données sous-jacente.The expressions that can be used in LINQ to Entities queries are a superset of the expressions that can be used to query the Entity Framework.Expressions that are part of queries against the Entity Framework are limited to operations supported by ObjectQuery<T> and the underlying data source.

Dans l'exemple suivant, la comparaison dans la clause Where est une expression :In the following example, the comparison in the Where clause is an expression:

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

Notes

Les constructions de langage spécifiques, telles C# uncheckedque, n’ont aucune signification dans LINQ to Entities.Specific language constructs, such as C# unchecked, have no meaning in LINQ to Entities.

Dans cette sectionIn This Section

Expressions de constantesConstant Expressions

Expressions de comparaisonComparison Expressions

Comparaisons NullNull Comparisons

Expressions d’initialisationInitialization Expressions

Relations, propriétés de navigation et clés étrangèresRelationships, navigation properties and foreign keys

Voir aussiSee also