2010-08-24 8 views
0

Je suis nouveau à NHibernate et je rencontre quelques problèmes avec la cartographie.NHibernate cartographie avec une table intermédiaire

Disons que j'ai une table:

People 

PersonID 
PersonName 
PersonAge 

J'ai une autre table

ParentRelaitions 

RelationID 
Parent (This is a PersonID) 
Child (This is also a PersonID) 

Ce que je veux vraiment sortir de c'est un objet comme celui-ci

public class Person 
{ 
string name; 
int age; 
IList<Person> Children; //This is a list of all the persons children 
} 

Comment est-ce que je pourrais procéder à cela? Je suis assez perdu et je n'arrive pas à trouver des exemples pertinents.

Merci

+0

Pour ce qui utilisez-vous le relationId? – Paco

Répondre

3

Cela devrait vous aider à démarrer:

<class name="Person"> 
    <id column"PersonId" type="..."> 
    <generator class="..."/> 
    </id> 
    <property name="name" column="PersonName" access="field"/> 
    <property name="age" column="PersonAge" access="field"/> 
    <idbag name="Children" table="ParentRelations"> 
    <collection-id column="RelationId" type="..."> 
     <generator class="..."/> 
    </collection-id> 
    <key column="Parent"/> 
    <many-to-many column="Child" class="Person"/> 
    </idbag> 
</class> 
+0

Merci beaucoup c'est ce que je cherchais. – Justin

0

Votre exemple est un peu vague, mais vous devriez regarder dans une classe d'association.

1

Je ne comprends pas. Quelle est la relation entre Parent et enfant? 1: N ou M: N? Si 1: N alors étudier la relation NHibernate many-to-one, si M: N alors étudier many-to-many.

+0

Oui, ça ressemble à beaucoup-à-plusieurs. Il arrive juste que c'est la même table des deux côtés de la relation. – Douglas