Précédent   Forum du club des développeurs et IT Pro > Dotnet > Accès aux données > Entity Framework
Entity Framework Forum d'entraide sur le développement avec le modèle d'accès aux données Entity Framework de Microsoft.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 28/07/2012, 01h09   #1
metalsephiroth
Nouveau Membre du Club
 
Homme Philippe
Étudiant
Inscription : 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 : 26
Points : 26
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
metalsephiroth est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2012, 09h48   #2
plume13
Membre confirmé
 
Femme
Ingénieur développement logiciels
Inscription : novembre 2011
Messages : 113
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 35
Localisation : France, Var (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 : 113
Points : 233
Points : 233
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.
plume13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/07/2012, 11h24   #3
chrisdot
Membre expérimenté
 
Homme Christophe
Développeur .NET
Inscription : juillet 2009
Messages : 414
Détails du profil
Informations personnelles :
Nom : Homme Christophe
Localisation : France

Informations professionnelles :
Activité : Développeur .NET

Informations forums :
Inscription : juillet 2009
Messages : 414
Points : 501
Points : 501
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();
chrisdot est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 06/08/2012, 20h00   #4
Léonard Labat
Nouveau Membre du Club
 
Avatar de Léonard Labat
 
Homme Léonard Labat
Consultant .NET
Inscription : juillet 2010
Messages : 16
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 : 16
Points : 32
Points : 32
Le sql généré sera effectivement exactement le même dans les deux cas.
Léonard Labat est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 10h53.


 
 
 
 
Partenaires

Hébergement Web