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 :

EntityFramework : possibilités de simplification des requetes ?


Sujet :

Entity Framework

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 7
    Points : 10
    Points
    10
    Par défaut EntityFramework : possibilités de simplification des requetes ?
    Bonjour,

    Impossible d'arriver à trouver un titre explicite pour ce que je vous vous montrer, sois je suis pa ssé à coté de l'entity framework depuis les quelques jours que je l'utilise, sois c'est vraiment puissant ( sans être trés optimisé derrière).

    J'ai une base généré avec EF sous visual 2010, avec des Etudiants (Student) qui ont une relation 1-N avec des formations (Semester). ( Un etudiant à une seule formation en cours, une formation comporte N etudiant).

    Je veut dans mon code récupérer tout les étudiants qui appartiennent à une formation donnée.

    J'ai d'abord commencé par écrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     public List<Student> getStudentBySemester(Semester sem)
        {
            List<Student> students;
     
            using (DataBaseContainer dc = new DataBaseContainer())
            {
                dc.AttachTo("SemesterSet", sem);
                var result = from p in dc.GlobalEntitySet.OfType<Student>()
                             where p.Semester.Id == sem.Id
                             orderby p.Username ascending
                             select p;
                students = result.ToList<Student>();
            }
     
            return students;
        }
    C'est pas faux de l'écrire je suppose. Mais alors :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
      public List<Student> simpleGetStudentBySemester(Semester sem)
        {
            sem.Student.Load();
            return sem.Student.ToList<Student>();
        }
    Je rêve complétement ou ça fait la même chose ? Niveau optimisation, qu'est ce qui est le mieux si je ne rêve pas.

    En fait mon appli n'est pas assez avancé pour que je puisse le tester facilement et j'arrive pas à savoir ce qu'il en est en cherchant sur les divers aides sur internet.

    Mais alors dans ce cas, le langage de requête que j'utilisais alors jusque là n'est t'il pas complétement obsoléte en EF ?

    Peut t'on réduire sur le même principe :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     public void getEventsByEntity(GlobalEntity ge, DateTime begin, DateTime end)
        {
            using (DataBaseContainer dc = new DataBaseContainer())
            {
              var eventsList = from ev in dc.EventSet
                           from eg in ev.GlobalEntity
                           where eg.Id == ge.Id
                           && ev.StartTime >= begin && ev.EndTime <= end
                           select ev;        }
        }
    Soit " J'ai des evenement liés à des entités, relation N-N, un evement à plusieurs entités concernée, une entité est liés à plusieurs événement", je veut pouvoir récupérer pour une entité donnée, l'ensemble des évenement en base.


  2. #2
    Membre émérite Avatar de meziantou
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2010
    Messages
    1 223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 1 223
    Points : 2 439
    Points
    2 439
    Par défaut
    Je rêve complétement ou ça fait la même chose ?
    Et non tu ne reves pas. Comme dans ton modèle tu as précisé les relations, EF permet de les suivre tout seul.

    Niveau optimisation
    Je n'ai jamais fait de test mais il suffit de regarder le sql générer.

  3. #3
    Membre éprouvé Avatar de anthyme
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 559
    Points : 1 257
    Points
    1 257
    Par défaut
    Tu n'as pas ton filtre sur les dates mais sinon oui ça ne pose pas de probleme de faire comme cela ... c'est l'intérêt d'un ORM

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 26/10/2005, 14h35
  2. Possibilité de mettre des images dans un DrawGrid?
    Par tactical dans le forum C++Builder
    Réponses: 8
    Dernier message: 11/07/2005, 17h38
  3. [sgbd]Optimisation des requetes Oracle/Perl
    Par linou dans le forum SGBD
    Réponses: 7
    Dernier message: 30/06/2005, 18h09
  4. Recuperer les erreurs des requetes sql en asp
    Par emile13 dans le forum ASP
    Réponses: 3
    Dernier message: 01/04/2004, 13h49
  5. Optimisation des requetes
    Par bifidus dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 06/10/2003, 11h29

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