Question

Je suis en train de transférer un grand graphique des entités .NET à utiliser NHibernate, mais je rencontre un problème que la plupart des relations ne sont définies unidirectionnellement - dans la plupart des cas, la classe enfant contient une référence au parent , mais le parent ne contient pas la collecte de refs à ses enfants. Il serait tout à fait un peu de travail pour ajouter toutes les collections pour transformer les relations dans les bidirectionnels, donc je me demande quelles sont les conséquences pour NHibernate seraient de ne pas le faire?

Une conséquence je l'ai remarqué est que les suppressions en cascade semblent ne pas (l'enfant ne soit pas supprimé dans le DB, ce qui provoque une violation de l'intégrité référentielle). Est-ce que la seule conséquence ou y at-il d'autres questions que je dois être au courant?

Y at-il des lignes directrices pour quand les relations devraient être uni ou bi-directionnel?

Merci

Était-ce utile?

La solution

Je pense que ne pas pouvoir en cascade les suppressions sera le seul problème avec NHibernate en soi.

Mais vous ne serez pas capable de marcher facilement le graphique. Vous pouvez le faire de l'enfant à des parents, mais évidemment pas de parent à enfant. Donc, vous devez émettre une requête à chaque fois que vous voulez tous les Childs d'un parent.

Donc, si vous utilisez NH pour un modèle de domaine persista où vous avez un objet racine à partir de laquelle vous devez utiliser les objets enfants pour certaines opérations, vous auriez aux questions d'émission à partir du modèle pour obtenir les enfants. Ainsi, votre modèle sera couplé à votre accès aux données.

Ou vous devez passer les enfants à l'objet parent sous forme de collections, mais il pourrait être juste à facile d'avoir les collections sur le modèle pour commencer la largeur afin NH pourrait les remplir pour vous.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top