Обновление коллекции nhibernate fk ссылка на дочерний объект становится нулевой при обновлении - PullRequest
0 голосов
/ 31 декабря 2010

У меня есть родитель и ребенок, вставка происходит просто отлично! если я получаю родительский (вместе с дочерней коллекцией) и изменяю значения дочерних и выполняю session.SaveOrUpdate (Digikeyset), все значения обновляются в дочерних записях, однако проблема в том, что столбец FK обновляется до NULL в дочерних.

<class name="Digikeyset" table="`digikeyset`" lazy="false">
<id name="Iddigikeyset" column="`iddigikeyset`" type="int">
  <generator class="native" />
 </id>
<property type="string" length="100" name="Mpart" column="`mpart`" />
<property type="int" name="Boardqty" column="`boardqty`" />
<bag name="Fkdigirowset" inverse="false" lazy="false" cascade="all" >
    <key column="`iddigiset`" />
  <one-to-many class="bomorderDal.Digikeyrow,bomorderDal" />
</bag>  </class>

<class name="Digikeyrow" table="`digikeyrow`" lazy="false">
<id name="Iddigikeyrow" column="`iddigikeyrow`" type="int">
  <generator class="native" />
</id>
<property type="Boolean" name="Ispartselected" column="`ispartselected`" />
<property type="Boolean" name="Ispartfound" column="`ispartfound`" />
<many-to-one name="Iddigiset" cascade="save-update" column="`iddigiset`" />
  </class>

Ответы [ 2 ]

0 голосов
/ 03 января 2011

Спасибо за предложение.Попробовал с предложенными вариантами, но безуспешно.

Наконец-то получил результат.Убрали

<many-to-one name="Iddigiset" cascade="save-update" column="`iddigiset`" /> 

с ребенка, и это помогло.Кстати, я использую библиотеки Nhibernate, необходимые для среды со средним уровнем доверия.

0 голосов
/ 03 января 2011

Не уверен, что это проблема, но если вы изменяете значения, вы должны Flush, а не SaveOrUpdate. Сохранить для новых объектов, Обновление для существующих объектов, которые не присоединены к сеансу.

Так что вместо:

session.SaveOrUpdate(Digikeyset)

Попробуйте:

session.Flush()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...