Problème avec linq

Amethyste16 Messages postés 5 Date d'inscription dimanche 6 avril 2008 Statut Membre Dernière intervention 7 novembre 2008 - 7 avril 2008 à 00:02
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 - 7 avril 2008 à 11:30
bonjour


pour quelle raison le code Linq suivant retourne une exception prétendant qu'on ne peut le tradire en SQL?



      private static void DisplaySorted<K>(Func<Customer,K> selector)
        {
            NothDataContext Contexte = new NothDataContext();



            var query = from Client in Contexte.Customers
                        orderby selector(Client)
                        select Client;
        }

Je l'appelle avec :

DisplaySorted((Customer p)=>p.CompanyName);

Bien sûr j'utilise la base Northwind

merci

3 réponses

sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 38
7 avril 2008 à 09:31
c'est quoi selector ?

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
0
oximoron Messages postés 149 Date d'inscription mercredi 23 juillet 2003 Statut Membre Dernière intervention 30 janvier 2009
7 avril 2008 à 10:54
je connais pas mais si j'ai bien compris ca sert à passer à la fonction le champ qui sera trié. Ca peut être utile :) mais je ne peux pas t'aider :(
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 38
7 avril 2008 à 11:30
arf, j'avais mal lu ton bout de code... pfff...

donc... normalement, il faut faire :
var query = from Client in Contexte.Customers
                        orderby Client.LastName
                        select Client;

mais je ne suis pas sur qu'on puisse remplacer le orderby par un delegate...

par contre, tu peux faire

var query = from Client in Contexte.Customers
                        select Client;
query.OrderBy(selector);

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
0