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 :

Tables liées et chargement


Sujet :

Silverlight

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 488
    Par défaut Tables liées et chargement
    Bonjour,

    J'ai une question de débutant en Silverlight (et WPF en général) :
    Si l'on crée des relations dans le designer de la base de donnée alors dans le fichier metadata.cs vont être générés des champs permettant l'accès aux tables liées.

    Par exemple
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    internal sealed class Table1Metadata
            {
                // Metadata classes are not meant to be instantiated.
                private Table1Metadata()
                {
                }
     
                public int ID { get; set; }
                public string Champ1 { get; set; }
                public int Table2ID { get; set; }
                public Table2 Table2{ get; set; }
            }

    Mais lorsque je charge les éléments de ma Table1 en utilisant la Query autogénérée les valeurs de Table2 ne sont pas remplies (vaut null).
    Est-ce qu'il y a un moyen de faire en sorte que les valeurs de Table2 soient aussi chargées ? Faut-il faire une Query personnalisée ?

    Merci

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

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Il faut rajouter l'attribute [Include] sur ta propriété enfant ET appeler la méthode Include lorsque tu fais ta requête sur ton contexte.

    Du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    context.Products.Include("ChildProperty");

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 488
    Par défaut
    Ça marche !

    Mais est-il possible de faire cela de façon récursive ?

    Je suppose qu'on enchaine les include si on veut charger plusieurs tables liées ?

    Merci pour ton aide.

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

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Citation Envoyé par sovitec Voir le message
    Ça marche !

    Mais est-il possible de faire cela de façon récursive ?

    Je suppose qu'on enchaine les include si on veut charger plusieurs tables liées ?

    Merci pour ton aide.
    Oui il faut les enchainer.
    Et si tu veux charger une propriete enfant d'un enfant il faut mettre un point : Include("Property1").Include("Property1.Property2")

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 488
    Par défaut
    Merci, merci, ça va beaucoup me simplifier la tâche.

    Par contre si je génère une nouvelle version du DomainService suite à une mise à jour de la base je vais perdre mes modifications ? Non ?

    Il y a un moyen d'éviter cela ?

  6. #6
    Membre Expert
    Avatar de Samuel Blanchard
    Homme Profil pro
    Expert .NET
    Inscrit en
    Février 2010
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Par défaut
    Attention aux performances quand même

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    876
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 876
    Par défaut
    Citation Envoyé par sovitec Voir le message
    Merci, merci, ça va beaucoup me simplifier la tâche.

    Par contre si je génère une nouvelle version du DomainService suite à une mise à jour de la base je vais perdre mes modifications ? Non ?

    Il y a un moyen d'éviter cela ?
    Oui, il suffit de créer une classe partielle qui contient tes include, celle là ne sera pas "écrasée"lorsque tu généreras un nouveau domainservice. Par contre tu auras bien quelques conflits qu'il te suffira d'éliminer en enlevant les doubles définitions...

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

Discussions similaires

  1. Mise à jour des tables liées + TIMESTAMP
    Par Homegrown dans le forum Access
    Réponses: 11
    Dernier message: 25/04/2005, 21h52
  2. Réponses: 8
    Dernier message: 05/04/2005, 22h17
  3. Connaitre si table liée
    Par Njara dans le forum Access
    Réponses: 2
    Dernier message: 25/10/2004, 16h35
  4. [select dans case] reconnaitre un champ d une table liée
    Par the_edge dans le forum MS SQL Server
    Réponses: 14
    Dernier message: 22/10/2004, 16h47
  5. Count et tables liées ?
    Par seb_perl dans le forum Requêtes
    Réponses: 2
    Dernier message: 09/02/2004, 12h52

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