2009-01-25 5 views
7

Est-ce que quelqu'un sait pourquoi NHibernate génère un champ nommé 'elt' de type int pour un mappage plusieurs à plusieurs? Je me demande pourquoi j'en ai besoin. MerciChamp NHibernate elt

Répondre

11

Le champ "elt" est la clé étrangère de l'élément dans le mappage plusieurs-à-plusieurs. Dans la table de jointure, vous devriez voir deux colonnes de clé étrangère, id (pour le parent) et elt (pour l'élément). Vous pouvez utiliser des noms différents si vous le souhaitez; ce sont des défauts.

4

Merci, oui vous avez raison avec un peu plus de jeu, j'ai trouvé que si je ne nomme pas explicitement la colonne, il est par défaut à elt.

<bag name="equipment" table="tb_room_equipment" lazy="false"> 
    <key column="roomID"/> 
    <many-to-many class="Equipment" column="equipmentID"/> 
</bag> 

Comme ici, j'ai maintenant appelé la colonne equipmentID; Si je ne le fais pas, il sera nommé elt.

2

Tout récemment découvert que le champ elt est créé si vous avez utilisé un mot-clé comme utilisateur ou rôle lors de l'utilisation du mappage par code. Ceci est juste une observation, je n'ai pas essayé d'utiliser `(backtick) pour forcer des citations