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

ASP.NET MVC Discussion :

Meilleure pratique pour accéder à la BDD


Sujet :

ASP.NET MVC

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Espagne

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 145
    Points : 77
    Points
    77
    Par défaut Meilleure pratique pour accéder à la BDD
    Salut.
    Je développe une application MVC 2. J'utilise LINQ to SQL comme ORM pour accéder à ma base. J'ai aussi utilisé le repository pattern conseillé dans le tutoriel NerdDinner:http://www.asp.net/mvc/videos/creati...controller-mvc...

    Bref avec mon ORM, j'ai une classe Student(studid_,...etc), une classe Course(course_id,...etc) et une autre classe registered_in(student_id,course_id).

    J'ai mes classe StudentRepository et CourseRepository pour communiquer avec la base. Maintenant, je souhaite pour un student particulier, rechercher dans registered_in tous les cours où il est enregistrer... Il s'agit donc de regarder dans la table registered_in les courses_id's associer au student_id puis pour chaque course_id, chercher dans la table courses les infos sur chaque course....

    Comment dois-je m'y prendre? C'est à dire où écrire le code etc...
    Merci d'avance !

  2. #2
    Expert éminent sénior

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Points : 12 465
    Points
    12 465
    Par défaut
    Salut,

    tu peux rajouter une méthode GetRegisteredCourseforStudent dans la classe StudentRepository.

    Dans StudentRepository plutot que dans CourseRepository pour la simple et conne raisons que, comme tu cherches tous les cours d'un Etudiant, l'objet principal de ta requête est un étudiant, et que cela fait donc plus de sens de la mettre ici...

    Après, l'idéal à mon avis, ce serait, si tes classes de Repository sont bien des repositories (donc, font partie de la couche d'accès aux données), d'avoir une classe type StudentManager/StudentService qui va appeler avec une syntaxe Linq tes repositories pour en récupérer les objets...mais la, ca depends aussi de de que tu fais avec ton appli

    Mon Blog

    The Cake is still a lie !!!



    Vous voulez contribuer à la rubrique .NET ? Contactez-moi par MP.
    Vous voulez rédiger des articles pour la rubrique .NET ? Voici la procédure à suivre.

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Espagne

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 145
    Points : 77
    Points
    77
    Par défaut
    Bon, j'avais oublié que LINQ to SQL examiner les relations dans les tables. Du coup, voila où j'en suit:

    Ceci est dans la classe StudentRepository
    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 ICollection<Course> GetStudentCourses(string username)
            {
                ICollection<Course> courselist = new Collection<Course>(); 
                Student st = db.Student.Single(s => s.aspnet_User.UserName == username);
     
                ICollection<registered_in> reglist = st.registered_in;
                foreach (registered_in reg in reglist)
                {
                    CourseRepository cRep = new CourseRepository();
                    Course course = cRep.GetCourse(reg.course_id);
                    courselist.Add(course);
                }
     
                return courselist;
            }
    est-ce la bonne approche?

Discussions similaires

  1. Réponses: 7
    Dernier message: 15/02/2008, 20h01
  2. [information] meilleures pratiques pour gestion d'events
    Par trolldom dans le forum Windows Forms
    Réponses: 2
    Dernier message: 05/07/2007, 13h24
  3. Réponses: 2
    Dernier message: 05/02/2007, 08h51
  4. [ODBC] Quitter l'interface pour accéder à une BDD Access
    Par tigzirt dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 22/05/2006, 13h33
  5. Meilleur langage pour une erlation bdd
    Par Captain_JS dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 15/03/2005, 13h44

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