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

Entity Framework Discussion :

Order By dans une collection d'entity


Sujet :

Entity Framework

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 72
    Points : 46
    Points
    46
    Par défaut Order By dans une collection d'entity
    Bonjour à tous,

    J'ai un petit problème d'ordre dans mes collections d'entité.

    Voici le soucis :
    - J'ai deux type d'entités, une PARENT et une ENFANT
    - PARENT contient 0..n ENFANT
    - chaque entité ENFANT a un ID en auto increment

    Je ne veux pas faire un PARENT.Enfant.Load() pour charger toutes les entités ENFANT mais passer par une requête explicite du type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var requete = from enfants in context.ENFANT
                                  where ENFANT.PARENT.ID == pId orderby points.ID ascending
                                  select enfants;
    
    result.ENFANT.Attach(requete);//Result est de type PARENT
    Quand je met un point d'arrêt dans le résultat de requete pas de problème la liste d'enfant est ordonnée selon les ID croissant.

    Mais si je regarde la liste d'entité dans result.ENFANT (result est de type parent), je constate que l'ordre de mes ENFANT ne sont plus du tout dans l'ordre souhaité.

    Comment faire pour s'assurer que la liste d'entité soit triées selon les critères de la requête?

    Même si ensuite je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    result.ENFANT.OrderBy(c=>c.ID);
    La liste n'est toujours pas ordonnée dans le bon ordre ...

    Si quelqu'un a une idée je suis preneur!

    Merci à vous.
    Salut les ptits gars!

  2. #2
    Membre expert
    Avatar de GuruuMeditation
    Homme Profil pro
    .Net Architect
    Inscrit en
    Octobre 2010
    Messages
    1 705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : .Net Architect
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 705
    Points : 3 568
    Points
    3 568
    Par défaut
    Pour être sûr :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    result.ENFANT.OrderBy(c=>c.ID);
    Devrait bien te donner une liste ordonnée. Mais ne vas pas changer l'odre dans la variable result (si tu regardes en debug)
    Microsoft MVP : Windows Platform

    MCPD - Windows Phone Developer
    MCPD - Windows Developer 4

    http://www.guruumeditation.net

    “If debugging is the process of removing bugs, then programming must be the process of putting them in.”
    (Edsger W. Dijkstra)

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 72
    Points : 46
    Points
    46
    Par défaut
    Oui je peux voir ça en debug ou bien si je fais un foreach sur PARENT.ENFANT puisque c'est de cette manière que je vais l'appeler.

    Je ne comprend pas pourquoi cette liste après le Attach n'est pas l'image de ce qu'on a demandé dans la requête qui l'alimente ...
    Salut les ptits gars!

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 72
    Points : 46
    Points
    46
    Par défaut
    Oui tu as raison, l'order by renvoie une collection ordonnée comme attendu, sans rien faire d'autre.

    Par contre pour un "attachement", l'ordre n'est pas pris en compte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    result.ENFANT.Attach(maCollectionEnfant.orderby());
    Si on parcourt la collection attachée, elle n'est pas ordonnée dans l'ordre définit dans l'order by.

    Il suffit de la savoir

    Merci.
    Salut les ptits gars!

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

Discussions similaires

  1. [VB.NET] Suppression d'objets dans une collection
    Par master56 dans le forum VB.NET
    Réponses: 7
    Dernier message: 03/06/2010, 21h46
  2. Réponses: 8
    Dernier message: 03/02/2006, 15h15
  3. [PL/SQL] Charger une table dans une collection
    Par nosnoss dans le forum Oracle
    Réponses: 10
    Dernier message: 03/03/2005, 17h56
  4. Controle dans une collection
    Par rolototo dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 07/02/2005, 14h12
  5. Problème de Order by dans une requête
    Par showa dans le forum Requêtes
    Réponses: 3
    Dernier message: 03/08/2004, 15h40

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