Je suis curieux de savoir s'il existe des solutions pour traiter les hiérarchies d'objets dans une approche ORM (dans ce cas, en utilisant Entity Framework 4). Je travaille sur des documents sur EF4 et essaie de l'appliquer à un simple programme de suivi d'inventaire. Les types possibles pour l'inventaire de tomber en sont les suivantes:Comment est-ce que je ferais mieux d'aborder ce type d'objet heirachy? Une sorte de hiérarchie enum?
TYPES DE POINT D'INVENTAIRE:
- Matériel
-
- PC
-
-
- Bureau
-
-
-
- serveur
-
-
-
- ordinateur portable
-
-
- Accessoire
-
-
- entrée (claviers, scanners, etc)
-
-
-
- sortie (mon contrôle de façon, imprimantes, etc.)
-
-
-
- stockage (clés USB, lecteurs de bande, etc.)
-
-
-
- communication (cartes réseau, les routeurs etc.)
-
- Software
Quelles recommandations sont là pour traiter les énumérations dans une telle situation? Les enums sont-ils même la solution?Je ne veux pas vraiment avoir une base de données ridiculement normalisée pour une expérience relativement simple (par exemple des tables pour InventoryType, InventorySubtype, InventoryTypeToSubtype, etc.). Je ne veux pas trop compliquer mon modèle de données avec chaque sous-type hérité même si aucune propriété ou méthode supplémentaire n'est incluse (sauf les types de PC qui auraient idéalement des accessoires et des logiciels associés mais qui sont probablement hors de portée ici).
Il me semble qu'il devrait y avoir une solution vraiment simple et élégante, mais je ne peux pas mettre le doigt dessus. Toute aide ou contribution appréciée!
Je voulais quelque chose comme ça depuis le début (je ne me rendais pas compte qu'il était considéré comme un "motif de conception composite"). Je ne savais pas comment cela fonctionnerait en pratique avec les classes générées par EF. En fin de compte, le support pour les classes auto-référencées est assez simple. J'ai encore besoin de regarder un moyen efficace pour traverser l'heirachy [par exemple: Si HasAncestry (CurrentCategory, "Hardware")] mais cela devrait être assez facile. – nathanchere
Perhaphs OfType <> peut vous aider dans EF - http://msdn.microsoft.com/en-us/library/bb399295.aspx – Sunny