Disons que je suis une classe/table appelée Images
qui, tel qu'il est en ce moment, est lié d'une manière similaire à ceci:NHibernate Cartographie d'une collection avec un discriminateur
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="Domain.Image, Domain" table="Images">
<id name="id" column="ImageID" access="field" unsaved-value="0">
<generator class="identity" />
</id>
<!-- other properties -->
<property name="AssociatedObjectID" column="AssociatedObjectID" />
<property name="AssociatedObjectType" column="AssociatedObjectType" />
</class>
</hibernate-mapping>
Jusqu'à ce point, ce schéma a fonctionné, parce qu'une image était seulement associée à un objet, ainsi je pourrais garder cette référence sans discriminateur.
Cependant, maintenant je veux avoir une collection de ces images sur une autre entité appelée PhotoShoot
. Chaque PhotoShoot
peut avoir plusieurs images.
Existe-t-il un moyen de lier une collection de sorte que je puisse avoir un List<Image>
dans PhotoShoot
sans extraire une classe de base et en utilisant le modèle d'héritage de table par hiérarchie?
Et sinon, est une table par hiérarchie vraiment la meilleure façon d'y aller? Je déteste créer des sous-classes, d'autant plus qu'il n'y a rien qui doit être soustrait de l'entité Image
.
C'est ce que je cherche à faire, sauf dans ce cas, la colonne de clé est une combinaison de AssociatedObjectId = PhotoShootId et AssociatedObjectType = « PhotoShoot ». Il serait possible que le AssociatedObjectId est le même pour une autre image, donc je tirerais images que je ne veux pas. – ddango