как заставить nhibernate установить внешний ключ дочернего элемента? - PullRequest
0 голосов
/ 07 апреля 2010

У меня есть коллекция в отображении:

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

Объект Value имеет внешний ключ [TemplateId].обе сущности имеют свой генератор, установленный на «идентичность».когда я вызываю session.Save () для родительского объекта Template, у объектов Value их [TemplateId] (внешний ключ) устанавливается в ноль, поэтому появляется исключение SQL.Как заставить nhibernate установить значение FK для дочерних элементов на значение вставленного родительского объекта?

1 Ответ

1 голос
/ 07 апреля 2010

Я справился сам: единственное, что мне нужно было сделать, это спроектировать отображение и сохранение дочерних объектов следующим образом:

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

поэтому дочерний объект имеет ссылку на родителя вместо идентификатора родителя

...