Je suis en train de créer une classe auto-référencée. Un enfant a une référence à son parent et un parent a une liste d'enfants. Puisque la liste des enfants est ordonnée, j'essaye de mapper la relation en utilisant NHibernate.Nhibernate - La liste de mappage ne met pas à jour les index de la liste
Ceci est mon application:
<class name="MyClass">
<id name="Id">
<generator class="native"/>
</id>
<list name="Children" cascade="delete" inverse="true">
<key column="ParentId"/>
<index column="ListOrder"/>
<one-to-many class="MyClass"/>
</list>
<many-to-one name="Parent" class="MyClass" column="ParentId"/>
</class>
Le problème que je vais avoir est quand avoir un enfant de cartographie bidirectionnelle < -> parent, l'indice de la liste (ListOrder) ne sont pas mis à jour dans la base de données lorsque Je fais ma danse CRUD. Cela signifie que lorsque je par ex. supprimer un enfant, je reçois des trous dans la liste des enfants après avoir enregistré dans la base de données et récupérer le parent à nouveau. Si je supprime la bidirectionnalité, en n'ayant pas un multiple à un des enfants au parent (et pas inverse = true), le ListOrder est mis à jour correctement.
Avez-vous déjà vu cela auparavant? Y a-t-il une solution simple?
son à cause de l'inverse = true, pas sûr de ce que la meilleure solution est encore, ayant exactement la même question pour le moment. restez à l'écoute –
Yup, c'est à cause de l'inverse = vrai. Si le bidir est supprimé, tout fonctionne comme je le souhaite, ListOrder. La chose est que je dois implémenter la propriété des enfants moi-même, ce que je ne veux pas. –