2010-07-16 10 views
2

Salut Je suis curieux de savoir comment DDD est réellement implémenté en utilisant Fluent Nhibernate. par exemple, j'ai une classe d'entité appelée User et une autre classe appelée UserProfile, dans la mesure où Im concerné UserProfile n'est pas une classe d'entité mais un type de valeur, et ne devrait pas vraiment avoir une identité en tant que telle. Maintenant, pour mettre en œuvre pratiquement le profil de l'utilisateur sera idéalement stocké dans une table de base de données appelée UserProfile et je ne vois pas comment je peux obtenir un identifiant unique pour cette table. J'utilise aussi FluentNhibernate comme un ORM et je crois que la classe UserProfile doit avoir un Id pour pouvoir être mappée correctement. Alors qu'arrive-t-il au concept de types de valeurs, de racine agrégée, etc., est-il vraiment possible d'implémenter un DDD réel avec Nhibernate courant ou est-ce juste que ma compréhension de DDD est mauvaise. Tout ce que j'ai vraiment vu, c'est beaucoup de théorie sur le tout, mais je n'ai pas vu de projet qui utilise réellement DDD avec NHibernate. Je suis un peu confus maintenant, toute aide est appréciéeConception dynamique basée sur les domaines Nhibernate

Mise à jour

Bon après un peu de lecture jusqu'à Je comprends que repositores sont utilisés pour gérer les racines en agrégats, éclaircit certaines des questions, mais en fin de compte la classe userprofile est pas une racine d'agrégare, alors devrais-je lui donner un identifiant? il en a évidemment besoin d'un dans la table de base de données, donc je suppose que la classe a aussi besoin d'un identifiant. Mais cela ne va-t-il pas à l'encontre du principe de DDD? quel est le moyen de contourner cela?

Répondre

2

Il aura besoin d'un ID pour être pris en charge par votre ORM (NHibernate), et c'est parfaitement bien. La distinction entre Entités et Types de valeur est leur concept d'identité et de vie. Avoir un champ Id est simplement un détail d'implémentation ici.

+0

Merci qstarin, qui éclaircit une partie de la confusion – Matthew

Questions connexes