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

Linq Discussion :

requete insert relation many to many ado.net data services ?


Sujet :

Linq

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 57
    Points : 42
    Points
    42
    Par défaut requete insert relation many to many ado.net data services ?
    Bonjour,

    J'ai un problème d'ajout de données dans une association entre 2 tables :

    voici les clé primaire des tables :

    table Chantiers :
    NumFiliale
    NumCHantier
    DateChantier

    table commande
    NumFiliale
    NumCommande
    DateCommande


    je met également une screen de mon model ado.net .

    Ensuite dans mon code j'écris ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var chantier = (from c in context.chantiers
                                     where c.Num == 1
                                     select c).Single();
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var com = (from c in context.commandes
                               where c.Num == 3
                               select c).Single();
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    com.chantiers.Add(chantier);
    context.AddLink(com, "chantiers",chantier );
    context.SaveChanges();
    Et j'ai l'erreur suivante :
    Une erreur s'est produite lors du traitement de cette requête
    Comment puis-je régler ce probleme ?

    ps : j'ai d'autre table en many to many , par exemple entre client et contact . en suivant ce même code cela fonctionne.

    Est-ce que ce problème est du au clé primaire multiple ?

    merci
    Images attachées Images attachées  

  2. #2
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Points : 8 080
    Points
    8 080
    Par défaut
    J'ai cru voir passer un problème analogue dans un blog developpez.com y'a pas longtemps!

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 57
    Points : 42
    Points
    42
    Par défaut
    je ne le trouve pas . pourrez-tu me donner le lien stp ?

  4. #4
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Ca ne fonctionne pas avec une liaison du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    com.chantiers = chantier;
    D'ailleurs il vaut mieux utiliser First que Single pour des raisons de performances : First retourne le premier quoiqu'il arrive (si il y a au moins un élément), Single parcoure toute la liste et vérifie si l'item est bien unique.

    Donc prends l'habitude d'utiliser FirstOrDefault au lieu de Single.
    Introduction à Silverlight 4 (new) ; Localisation d'une application Silverlight (new) ;
    Mon espace perso[/B]

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. Albert Einstein[/SIZE]

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 57
    Points : 42
    Points
    42
    Par défaut
    ok merci , mais en faite chantier est une collection dans "commande" car c 1 relation n - n .

    mais par exemple , j'ai 2 autres table similaire et cela fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    var contact = (from c in context.contacts
                               where c.Num == con.Num
                               select c).Single();
     
                var client = (from c in context.clients
                              where c.Num == ClientSelected.Num
                              select c).Single();
     
     
                contact.clients.Add(client);
     
                context.AddLink(contact, "clients", client);
     
                context.SaveChanges();

    pourquoi ca ne marche pas avec commande et chantier ? est-ce du au clé primaire multiple ?

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 57
    Points : 42
    Points
    42
    Par défaut
    Alors , je viens d'essayer quelque chose d'autre qui contourne mon probleme.
    J'ai transformer mon association en table en ajoutant un champs varchar.

    Donc au lieu de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    context.AddLink(com, "chantiers", chantier);
    je fais moi même l'insert .

    Mais c'est pas normal , il doit y avoir 1 solution à mon problème je pense.

    quelqu'un a t-il une idée ?

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 57
    Points : 42
    Points
    42
    Par défaut
    Alors , Cela fais maintenant 2 mois que j'utilise ADO sans trop de problème . en faite pour régler complètement mon problème j'ai transformé mes table en 1 seul clé primaire .
    Donc maintenant , j'ai plus de problème pour les ADDLINK .

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

Discussions similaires

  1. [EF] Problème avec ASTORIA (ADO.NET Data services)
    Par Smallde dans le forum Accès aux données
    Réponses: 0
    Dernier message: 11/03/2009, 09h56
  2. [Ado.net Data Service] l'expand ne semble pas fonctionner
    Par anthyme dans le forum Services Web
    Réponses: 3
    Dernier message: 20/01/2009, 21h57
  3. Réponses: 2
    Dernier message: 20/11/2008, 22h34
  4. Probleme avec ado.net data services .
    Par superkiller dans le forum Windows Communication Foundation
    Réponses: 0
    Dernier message: 27/10/2008, 14h00

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