我有以下映射:
<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" />执行insert和updates可以很好地工作(在集合中添加和删除时),但是获取对象总是导致抛出异常。
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.或者..。
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“之前,它曾经是有效的。
任何帮助都会得到极大的重视。
发布于 2009-07-17 09:16:14
事实证明,映射本身是正确的。问题发生在%1个对象的构造函数中...
我有一个默认的无参数构造函数,它是对另一个构造函数的重载。
public B() : this(null) { }然后,另一个构造器的代码类似于
public B(A c)
{
A= c;
}无论哪种方式,删除构造函数上的重载都会使我的所有测试都通过:D
https://stackoverflow.com/questions/1136633
复制相似问题