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 :

Connaitre le type d'instance d'un object donné


Sujet :

Linq

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Août 2007
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 15
    Par défaut Connaitre le type d'instance d'un object donné
    Bonjour tout le monde,
    Bon j'explique le déroulement du processus,
    J'ai une classe personne contenant les champs (id, nom ...)
    Et une classe enseignant et autre stagiaire, qui héritent de la classe personne.
    Un moment donné, j'ai le nom de la personne qui est stocké dans la table personne, alors moi à partir de ce nom je veux connaitre le type de cette personne (enseignant ou bien stagiaire). sachant que le nom est unique.

    Merci beaucoup de votre aide.

  2. #2
    Rédacteur

    Avatar de Jérôme Lambert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2003
    Messages
    4 451
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 451
    Par défaut
    A partir du nom d'une personne (dans un string), tu peux pouvoir déterminer si c'est un enseignant ou un stagiaire ?!

    Et comment veut-tu qu'on t'aide sans en savoir plus ? Où est l'information qui précise que tel nom de personne est un enseignant ou stagiaire ? Dans ta base de données ? si oui, quelle table ?

    Et au niveau du code C#, tu utilises quoi pour interroger ta base de données ? ADO.NET ? Linq to SQL, Linq to Entities ?

  3. #3
    Membre averti
    Inscrit en
    Août 2007
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 15
    Par défaut
    Je me suis mal expliqué,

    J'ai une classe Personne, (id, nom, prenom, tel...)
    Deux autre classe Enseignant et Stagiaire ayant comme attribut que l'Id

    en suite on a le nom de la personne, on va sélectionner l'objet personne ayant ce nom (sachant qu'il est unique) a travers l'expression linq :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Personne personne = db.Personnes.Single(P => P.nom == "xxxx");
    Le problème c'est comment savoir que cette personne est un enseignant ou un stagiaire ?

    Est ce claire ??

  4. #4
    Rédacteur

    Avatar de Jérôme Lambert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2003
    Messages
    4 451
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 451
    Par défaut
    Citation Envoyé par L_Kira Voir le message
    Personne personne = db.Personnes.Single(P => P.nom == "xxxx");

    Le problème c'est comment savoir que cette personne est un enseignant ou un stagiaire ?
    Par rapport à ta requête, tu auras toujours des instances de la classe Personne. Je ne vois pas comment tu pourrais avoir une instance de la classe Enseignant ou Stagiaire.

    Donc, je me répête, il manque des informations pour savoir comment résoudre ton problème.

    Je repose ma précédente question : C'est Linq to SQL que tu utilises ? Ou Entity Framework ?

  5. #5
    Membre averti
    Inscrit en
    Août 2007
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 15
    Par défaut
    Bon, moi j'ai l'habitude de développer en Java avec Hibernate,
    on fait un requête HQL presque le même principe que Linq, est on test l'instance la classe, comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Stagiaire S;
    if (personne.isInstenceOf(Stagiaire) == true)
    {
        // et on caste vers Stagiaire
        S = (Stagiaire) personne;
    }
    en .Net, est avec Linq, je ne trouve pas comme faire ce genre de chose ??

  6. #6
    Rédacteur

    Avatar de Jérôme Lambert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2003
    Messages
    4 451
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 451
    Par défaut
    Ce n'est donc pas un problème Linq que tu as

    c'est le mot clé is que tu dois utiliser comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if (monObjet is Enseignant)
    {
      Enseignant ens = (Enseignant)mobObjet;
    }
    else if (monObjet is Stagiaire)
    {
       Stagiaire sta = (Stagiaire)monObjet;
    }

Discussions similaires

  1. Connaitre le Type d'un Object
    Par thibaud dans le forum C#
    Réponses: 2
    Dernier message: 10/09/2007, 11h39
  2. [CSS][formulaire] connaitre le type d'un champ input
    Par psychomatt dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 22/09/2005, 12h13
  3. Connaitre le type de character set
    Par vbcasimir dans le forum Administration système
    Réponses: 4
    Dernier message: 02/08/2005, 13h02
  4. Réponses: 10
    Dernier message: 27/04/2005, 11h26
  5. Connaitre le type de chaque col d'une table Paradox
    Par mjp dans le forum Bases de données
    Réponses: 2
    Dernier message: 03/02/2005, 21h00

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