Nhibernate- Lazy Load初始化失败

时间:2010-02-19 05:43:55

标签: nhibernate lazy-loading

我正面临一个问题。我有一个2个Model项目和ProjectChangeRequest。  一个项目有多个变更请求。

现在在Nhibernate映射xml文件中,我已经采用了这样的类

项目

中的

<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 :(得分:0)

您可以尝试将您的一对多关联的 not-found 属性设置为“忽略”,这可能会解决您的问题。

e.g。

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