Nhibernate - Lazy Load инициализация сбой - PullRequest
0 голосов
/ 19 февраля 2010

Я столкнулся с проблемой. У меня есть 2 модельных проекта и ProjectChangeRequest. один проект имеет несколько запросов на изменение.

Теперь в XML-файле отображения Nhibernate я выбрал такой класс

в проекте

<class name="Project" table="project" lazy="false">
    <id name="ProjectID" column="ProjectID">
      <generator class="native" />
    </id>

    <property name="ProjectName" column="ProjectName" not-null="false" />

    <many-to-one name="Client" class="Client" column="ClientID" unique="true" />
    <bag name="ChangeRequest" generic="true" inverse="true" cascade="all" lazy="false">
      <key column="ProjectID" />
      <one-to-many class="ProjectChangeRequest" />
    </bag>
 </class>

и в запросе на изменение проекта

 <!--ProjectChangeReques-->
  <class name="ProjectChangeRequest" table="projectchangerequest" lazy="false">
    <id name="ProjectChangeRequesID" column="ProjectChangeRequesID" >
      <generator class="native"/>
    </id>
    <many-to-one name="Project" class="Project" column="ProjectID" unique="true"/>
    <property name="ProjectChangeRequestDetail" column="ProjectChangeRequestDetail" not-null="false" />

  </class>

Когда в таблице projectchangerequest нет данных, я получаю сообщение об ошибке: «Неизвестный столбец» changerequ0_.ProjectChangeRequesID 'в' списке полей '"

"base {NHibernate.HibernateException} = {" Не удалось лениво инициализировать коллекцию "}"

Пожалуйста, помогите мне решить эту проблему.

1 Ответ

0 голосов
/ 19 февраля 2010

вы можете попробовать установить атрибут not-found вашей ассоциации один-ко-многим в " ignore ", возможно, это решит вашу проблему.

, например

<bag name="ChangeRequest" generic="true" inverse="true" cascade="all" lazy="false">
      <key column="ProjectID" />
      <one-to-many not-found="ignore" class="ProjectChangeRequest" />
    </bag>
...