La conversion expression lambda dans une arborescence d'expression

À partir de C# en profondeur:

Pas tous les lambda expressions peuvent être convertis à des arbres d'expression. Vous
ne pouvez pas convertir un lambda avec un bloc d'instructions ( même juste un
instruction return ) dans une expresion de l'arbre --> il doit être sous la forme
qui n'évalue une expression unique.

Depuis Linq-to-Objet de déclarations n'est pas converti dans l'expression des objets de l'arborescence, les lambda expressions utilisées avec Linq-to-Objet les opérateurs peuvent contenir un bloc d'instructions

        string[] count = { "one ", "two ", "three ", "four ", "five ", "six " };
        IEnumerable<int> result = count.Select(item =>
                               {
                                   Console.WriteLine(item);
                                   return item.Length;
                               });
        foreach (int i in result);

De SORTIE:

one two three four five six

Je n'ai pas encore commencé l'apprentissage De Linq-to-Sql et Linq-to-Entités, mais je suppose que les expressions lambda utilisé avec LINQ états qui fonctionnent sur IQueryable<T> ne peut contenir qu'une seule expression, en raison de restristion qu'une seule expression peut être convertie en une arborescence d'expression?

Merci

OriginalL'auteur AspOnMyNet | 2011-12-07