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

Silverlight Discussion :

SubmitChanges et tables de liaisons


Sujet :

Silverlight

  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Novembre 2011
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1
    Par défaut SubmitChanges et tables de liaisons
    Bonjour,

    Dans le cadre d'un projet pour le cours de Silverlight, nous devons encoder des emplois avec les risques associés.
    La base de données (SQL Server) contient, notamment, une table 'emploi', une table 'risque' et une table nommée 'exposition' qui sert de liaison entre les deux autres.

    Chaque emploi peut être exposer à plusieurs risques et chaque risques peut être appliqué à plusieurs emplois.
    La table 'exposition' contient donc deux colonnes : un id vers emploi et un id vers risque.

    Dans mon projet Silverlight (Business Application), je créer donc un fichier .edmx qui m'affiche ceci.


    Ensuite, après avoir créé un DomainService, je peux créé des objets de type 'Emploi' et garnir les données de ces derniers.
    J'ai modifié les classes metadata en ajoutant un [include] pour pouvoir avoir accès à la collections de risques liée à l'emploi.




    Après cette courte explication, voici mon problème
    J'arrive à remplir la collection de risques de l'objet 'emploi', mais lorsque j'utilise la méthode SubmitChanges(), seul l'emploi est ajouté à la base de données. Autrement dit, il oublie complètement que j'ai ajouté des risques à cet emploi.

    Savez-vous comment je pourrai faire pour remplir la table exposition ?

    Cordialement,

  2. #2
    Membre émérite
    Homme Profil pro
    Développeur / architecte
    Inscrit en
    Juillet 2009
    Messages
    473
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur / architecte

    Informations forums :
    Inscription : Juillet 2009
    Messages : 473
    Par défaut
    La liaison many-to-many n'est pas supportée dans RIA services , contrairement à EntityFramework. (même pas dans la dernière version v1 SP 2 de la semaine dernière, mais elle est en bonne place dans les change request)
    Pour l'astuce, vois cet article au § Relations « Many to Many » avec Entity Framework 4 & RIA Services.
    Je m'en suis sorti en utilisant l'astuce donnée: càd que j'ai ajouté une column inutile à la table de relation (pour toi 'exposition') (genre un 'bit'). J'ai généré l'edmx (la table apparait alors). Tu peux ensuite supprimer cette colonne inutile de ta DB et générer les classes RIA svcs.
    Sinon, y'a une librairie codeplex qui fait ça mais limité aux clé int, et c'est qu'avec du T4 que je maîtrise pas.

    A+

  3. #3
    Membre confirmé
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Novembre 2011
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Novembre 2011
    Messages : 104
    Par défaut relation many to many et EF4
    Bonjour à tous,
    je me permets de reprendre ce post.
    J'ai créé un modèle emdx avec 2 tables en relation many to many.
    La table intermédiaire a bien été créée. Elle dispose uniquement des deux colonnes des clés primaires de chaque table.
    Au final j'ai donc bien mes trois tables.
    D'après l'article évoqué, silverligth n'arrivera pas à l'utiliser.
    La solution proposée est de créer un champ complémentaire puis de recréer la base.
    Ma base contenant déjà des données, puis-je faire le trajet inverse (créer le champ dans la BD, puis mettre à jour mon modèle à partir de la base ??

    Merci d'avance,

  4. #4
    Membre confirmé
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Novembre 2011
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Novembre 2011
    Messages : 104
    Par défaut
    Oups !!!
    Je viens de réaliser que c'était justement la solution retenue ...
    En effet, j'ai bien ma table de jointure mais elle n'apparaît tout simplement pas dans mon modèle emdx ...

    Faut que je prenne des vacances, moi !!

  5. #5
    Membre confirmé
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Novembre 2011
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Novembre 2011
    Messages : 104
    Par défaut
    L'update de l'emdx ne fonctionne pas pour moi !
    Il ne crée pas les tables intermédiares ...
    Doit-on supprimer l'emdx ??

  6. #6
    Membre émérite
    Homme Profil pro
    Développeur / architecte
    Inscrit en
    Juillet 2009
    Messages
    473
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur / architecte

    Informations forums :
    Inscription : Juillet 2009
    Messages : 473
    Par défaut
    As-tu bien ajouté le champs "parasite" pour que la table de relation apparaisse bien?

  7. #7
    Membre confirmé
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Novembre 2011
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Novembre 2011
    Messages : 104
    Par défaut
    Citation Envoyé par chrisdot Voir le message
    As-tu bien ajouté le champs "parasite" pour que la table de relation apparaisse bien?
    Oui, un champ de type bit.
    Puis j'enregistre ma structure, je réalise un petit schéma pour vérifier. Il y a bien la relation (mais on la voyait déjà sous Management studio) et le champ "bit" est bien présent dans ma table de jonction.
    Retour sous VS, mise à jour du emdx depuis la base de données.
    Rien! Il conserver la relation many to many entre mes deux tables "primaires".

  8. #8
    Membre émérite
    Homme Profil pro
    Développeur / architecte
    Inscrit en
    Juillet 2009
    Messages
    473
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur / architecte

    Informations forums :
    Inscription : Juillet 2009
    Messages : 473
    Par défaut
    Tu veux dire que c'est juste côté Silverlight que tu n'as pas accès à cette vue, mais que côté EF elle y est?
    As-tu bien modifié ta domain service class / metadatas associés?
    Je te conseilles d'en régéner une nouvelle avec tout dedans et ensuite de copier/coller ce qu'il te faut afin de compléter l'ancienne, ou alors carrément tout récréer si t'as pas encore "trop de monde" dans ton code.

    A+

  9. #9
    Membre confirmé
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Novembre 2011
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Novembre 2011
    Messages : 104
    Par défaut
    En fait, lorsque j'ai créé la base, je l'ai fait à partir du modèle (emdx). Ce dernier a bien créé la base avec la table de jonction mais, comme l'indique l'article cette table n'est pas présente dans l'emdx. Je pensais que c'était normal (puisque j'avais la relation many to many entre les deux tables de base, j'ai supposé qu'il "s'en arrangeait".
    Manifestement non!
    L'article semble évoquer que la table de jonction doit apparaître dans l'emdx (ou alors j'ai vraiment, vraiment besoin de vacances ).

    J'ai donc créé le champs sur ma table à partir de sql management studio. Puis j'ai tenté la MAJ du modèle emdx. Mais je ne vois pas la fameuse table de jonction dans l'emdx...

    PS : Merci chrisdot ...

  10. #10
    Membre confirmé
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Novembre 2011
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Novembre 2011
    Messages : 104
    Par défaut
    J'ai finalement recréé mon emdx après suppression de l'ancien ...
    C'est tout bon maintenant ! J'ai plus qu'à recréer mon service (heureusement que j'avais laissé les metadata de côté pour l'instant...).

    Merci ChrisDot !!

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

Discussions similaires

  1. Interroger une table de liaison
    Par Ferdinand dans le forum Requêtes
    Réponses: 2
    Dernier message: 19/03/2007, 10h32
  2. Table lié (liaison dynamique)
    Par willytito dans le forum Access
    Réponses: 2
    Dernier message: 19/03/2007, 09h20
  3. créer TRIGGER sur 1 table avec liaison sur 2 autre table
    Par shaka84 dans le forum Développement
    Réponses: 2
    Dernier message: 11/04/2006, 11h10
  4. Table de liaison "facultative"
    Par Asarnil dans le forum Langage SQL
    Réponses: 7
    Dernier message: 07/03/2006, 19h56
  5. jointure sur 2tables + 1 table de liaison
    Par gypa dans le forum Requêtes
    Réponses: 2
    Dernier message: 27/09/2005, 00h43

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