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 :

Problème relation plusieurs à plusieurs


Sujet :

ASP.NET MVC

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 58
    Par défaut Problème relation plusieurs à plusieurs
    Bonjour, j'ai un problème lorsque je veux ajouter plusieurs fois le même élément dans une relation de plusieurs à plusieurs.

    Le problème est que la méthode que j'utilise pour ajouter un menu ou un plat à la commande ne me permet pas par exemple d'ajouter plusieurs fois le menu d'id 1, il ne me l'ajoute qu'une seule fois.


    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
    17
    18
    19
    20
    21
            public void setCommande(commande _commande, List<int> listeplat, List<int> listemenu)
            {
                using (Entities contexte = new Entities())
                {
                    contexte.AddObject("commande", _commande);
     
                    foreach (int Cplats in listeplat)
                    {
                        plat Cplat = contexte.plat.Single(t => t.ID == Cplats);
                        _commande.plat.Add(Cplat);
                    }
     
                    foreach (int Cmenus in listemenu)
                    {
                        menu Cmenu = contexte.menu.Single(t => t.ID == Cmenus);
                        _commande.menu.Add(Cmenu);
                    }
     
                    contexte.SaveChanges();
                }
            }
    Merci à vous

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 58
    Par défaut
    J'ai pas donner assez de détails il me semble.

    En fait le problème c'est que dans la boucle qui ajoute un plat, ou celle qui ajoute un menu. Je ne peu ajouter un même menu qu'une seule fois alors qu'il peu y avoir plusieurs fois le même menu. il serait peut être intéressant de gérer la quantité dans ma relation mais avec EF je ne sais pas comment m'y prendre...

    Sinon plusieurs fois le même menu ou plat me conviens parfaitement.


    Merci à vous

  3. #3
    Membre Expert

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 067
    Par défaut
    tu as une contrainte d'unicité au niveau de ta table commande? sinon tu peux gérer ça en mettant une colonne quantité ou en créant une table intermédiaire contenant ton id commande et tes id plat et menu

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 58
    Par défaut
    Merci pour ta réponse

    En fait J'ai créer j'ai générer la BDD depuis un edmx.

    J'ai donc bien une table CommandePlat et CommandeMenu avec une clef primaire constituée de 2 champs qui sont les ID de commande et de plat ou menu.


    En fait j'ai du mal a prendre en main tout ce qui tourne autour de Entity Framework je n'ai pas trouver se source suffisante pour bien m'expliquer le fonctionnement.

    En fait je ne sais pas comment procéder avec EF. je pourrais très bien tout faire à la main, rajouter le champ dans la BDD et gérer la requête.

    Mais le seul but de ce projet et d'apprendre les bonnes manières avec EF.

    Merci à vous de m'aider à progresser

  5. #5
    Membre Expert

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 067
    Par défaut
    ta clé primaire doit être constitué que de l'id commande pour pouvoir ajouter plusieurs fois le même menu ou plat à ta commande

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 58
    Par défaut
    En fait je dois ajouter une clef primaire ID à la table menuCommande et aussi à la table platCommande mettre la clef primaire uniquement sur le champ ID ou bien rajouter une colonne quantité et metre la clef primaire sur les 3 champs.

    Seulement je ne sais pas comment faire ça avec l'EDMX je continue de chercher.

Discussions similaires

  1. [AC-2007] Relation réflexive plusieurs-plusieurs
    Par Vijinn dans le forum Modélisation
    Réponses: 1
    Dernier message: 06/07/2015, 16h27
  2. Réponses: 3
    Dernier message: 07/11/2013, 16h02
  3. Réponses: 11
    Dernier message: 07/01/2013, 22h45
  4. [AC-2007] relation de plusieurs à plusieurs
    Par emilk dans le forum Modélisation
    Réponses: 1
    Dernier message: 16/02/2011, 18h57
  5. Problème de Mapping : plusieurs à plusieurs
    Par Invité dans le forum Hibernate
    Réponses: 8
    Dernier message: 23/05/2008, 16h56

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