IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Silverlight Discussion :

RIA trouver la valeur maximale


Sujet :

Silverlight

  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    876
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 876
    Par défaut RIA trouver la valeur maximale
    Bonjour,

    J'ai jamais le déclic avec les lambda ... et peut être que c'est pas ça qu'il faut utiliser....

    J'ai une table FactureTbl qui contient des numéros de factures dans le champ FacNum.

    Je voudrais simplement retourner mon entité FactureTbl qui contient le "FacNum" le plus élevé.

    je tente un truc du style:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     public IQueryable<FactureTbl> GetNumMaxFacture()
            {
                return from myFacture in this.ObjectContext.FactureTbl where "myFacture.FacNum est maximum"  select myFacture;
            }

  2. #2
    Membre confirmé
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Novembre 2011
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Novembre 2011
    Messages : 104
    Par défaut
    Salut,
    personnellement, je tri par ordre décroissant (.orderByDescending) et je sélectionne le premier de la liste (firstOrDefault)...

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    876
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 876
    Par défaut
    Merci pour ta réponse,

    Effectivement, c'est un bon vieux truc qui fonctionne...

    J'y vois quand même un très gros désavantage c'est que si tu as une table de 20000 enregistrements, il faut tout rapatrier pour ne finalement n'en prendre qu'un !

    A moins évidemment de pouvoir utiliser un "Top" comme en Sql server ou un "Take 1", mais apparemment ça ne fonctionne pas en Linq.

  4. #4
    Membre confirmé
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Novembre 2011
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Novembre 2011
    Messages : 104
    Par défaut
    En fait, il me semble que linq ne "récupère" pas tous les enregistrements mais envoie juste la requête à la base qui retourne l'élément souhaité.
    ... mais je peux me tromper.
    Du coup (et si j'ai bien raison), un simple tri sur une base de 20000 lignes, c'est vraiment négligeable.

  5. #5
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Un truc dans le genre

    this.ObjectContext.FactureTbl.Max(o => o.FacNum)

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    876
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 876
    Par défaut
    Merci pour ta solution.

    En fait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     this.ObjectContext.FactureTbl.Max(o=> o.FactureNum)
    ne me retourne pas une entité "FactureTbl" mais bien un "int" qui est le type de FacNum.

    En faisant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                return (from myFacture in this.ObjectContext.FactureTbl where myFacture.FactureNum == this.ObjectContext.FactureTbl.Max(o=> o.FactureNum) select myFacture);
    J'arrive alors à l'effet escompté.

    Donc un grand merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. tapply, trouver l'index de la valeur maximale
    Par mathieu_r dans le forum R
    Réponses: 1
    Dernier message: 11/04/2013, 08h36
  2. Trouver la valeur maximale dans une matrice
    Par VanessaDu67 dans le forum MATLAB
    Réponses: 3
    Dernier message: 06/06/2007, 10h23
  3. valeur maximale de session.timeout?
    Par ryan dans le forum ASP
    Réponses: 3
    Dernier message: 13/09/2004, 22h11
  4. Valeur maximale d'un tableau
    Par Yana dans le forum Langage
    Réponses: 4
    Dernier message: 20/06/2003, 15h21
  5. [VB6] [Scrollbar] Valeur maximale supérieure à 32750
    Par néo333 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 11/12/2002, 10h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo