Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 4 sur 4
  1. #1
    Membre à l'essai
    Homme Profil pro Philippe
    Étudiant
    Inscrit en
    mars 2010
    Messages
    44
    Détails du profil
    Informations personnelles :
    Nom : Homme Philippe
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mars 2010
    Messages : 44
    Points : 24
    Points
    24

    Par défaut Identifier une entité héritée

    Bonjour,

    J'ai un fichier edmx dans lequel j'ai 5 entités qui me posent problème.

    - Une entité abstraite nommée Person qui se trouve être mon entité mère.
    - Une entité abstraite nommée Member qui dérive de Person
    - Une entité nommée Parent qui dérive de Person
    - Une entité nommée Student qui dérive de Member
    - Une entité nommée Teacher qui dérive de Member

    Je souhaiterai savoir comment (dans mon code) je peux connaitre le type spécialisé d'une Person.

    Concrètement, je souhaite à partir d'une liste de Person, obtenir des listes de Parent, Student, Teacher.

    Merci d'avance pour vos réponses

  2. #2
    Membre expérimenté

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    novembre 2011
    Messages
    247
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : novembre 2011
    Messages : 247
    Points : 523
    Points
    523

    Par défaut

    Hello,

    Pour ma part, j'utiliserais "is".
    Code :
    1
    2
    3
    4
    5
     
    ICollection<Person> persons = ...;
    ICollection<Student> students = persons.Where(x => x is Student).ToList();
    ICollection<Parent> parents = persons.Where(x => x is Parent).ToList();
    ICollection<Teacher> teachers = persons.Where(x => x is Teacher).ToList();
    Mais ça, ça fonctionne avec une liste complète récupérée d'Entity Framework. Pour filtrer en amont (au niveau d'EF), je ne sais pas si ça marche.

  3. #3
    Membre expérimenté
    Homme Profil pro Christophe
    Développeur .NET
    Inscrit en
    juillet 2009
    Messages
    452
    Détails du profil
    Informations personnelles :
    Nom : Homme Christophe
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : juillet 2009
    Messages : 452
    Points : 522
    Points
    522

    Par défaut

    Je sais pas au niveau implémentation ce qui est le mieux (ça doit sans doute être la même chose). Il m'est déjà arrivé d'utiliser la méthode d'extension OfType<>...
    Du style:
    Code :
    ICollection<Student> students = persons.OfType<Student>.ToList();

  4. #4
    Nouveau Membre du Club Avatar de Léonard Labat
    Homme Profil pro Léonard Labat
    Consultant .NET
    Inscrit en
    juillet 2010
    Messages
    17
    Détails du profil
    Informations personnelles :
    Nom : Homme Léonard Labat
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant .NET
    Secteur : Conseil

    Informations forums :
    Inscription : juillet 2010
    Messages : 17
    Points : 30
    Points
    30

    Par défaut

    Le sql généré sera effectivement exactement le même dans les deux cas.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •