NHibernate集合映射抛出'无法加载或初始化对象或集合'

时间:2009-07-16 10:10:47

标签: nhibernate collections mapping

我有以下映射:

<bag name="BList" table="A_TABLE" inverse="true" lazy="false" cascade="all-delete-orphan">
  <key column="A_ID"/>
  <one-to-many
     class="B, Model" />
</bag>

<many-to-one name="A"
             class="A, Model"
             column="A_ID"
             not-null="true" />

执行插入和更新工作正常(在从集合中添加和删除时),但是在抛出异常时始终会获取对象。

failed: NHibernate.Exceptions.GenericADOException : could not load an entity: [Model.B#5816932][SQL: SELECT ...]
  ----> System.NullReferenceException : Object reference not set to an instance of an object.

... OR

NHibernate.Exceptions.GenericADOException : could not initialize a collection: [Model.A.BList#1364389][SQL: ...]
  ----> System.NullReferenceException : Object reference not set to an instance of an object.

...取决于您要获取的对象。 我确定我在这里错过了一个简单的事情,因为它在我实现cascade =“all-delete-orphan”之前曾经工作过。

任何帮助都会受到极大关注。

1 个答案:

答案 0 :(得分:0)

事实证明,映射本身是正确的。 问题出现在1个对象的构造函数中......

我有一个默认的无参数构造函数,它是另一个构造函数的重载。

public B() : this(null) { }

其他建构者则有类似

的东西
public B(A c)
{
    A= c;
}

无论哪种方式,删除构造函数上的重载使我的所有测试都通过:D