2010-04-07 6 views
0

j'ai une collection dans la cartographie:comment forcer nhibernate à définir la clé étrangère de l'élément enfant?

<bag name="Values" cascade="all-delete-orphan" lazy="false" inverse="true"> 
    <key column="[TemplateId]"/> 
    <one-to-many class="MyNamespace.Value, MyLib"/> 
</bag> 

l'objet de valeur a une clé étrangère [templateId]. les deux entités ont leur générateur réglé sur "identité". lorsque j'appelle session.Save() pour l'objet Modèle parent, les objets Value ont leur [TemplateId] (la clé étrangère) définie sur zéro, donc une exception SQL apparaît. comment est-ce que je forse nhibernate pour définir la valeur FK pour les éléments enfants à la valeur de l'objet parent inséré?

Répondre

1

je suis parvenu moi-même: la seule chose que je devais faire est de concevoir la cartographie des objets de l'enfant et de la manière suivante persistante:

<many-to-one name="Template" class="MyNamespace.Template, MyLib" 
       column="[TemplateId]" not-null="true" /> 

donc l'objet enfant a une référence au parent à la place de la Id du parent

+0

la solution a été prise d'ici: http://stackoverflow.com/questions/1917845/nhibernate-parent-mapping-does-not-create-child-foreign-key – npeBeg