2009-07-16 12 views
1

をスロー:追加するとき(の挿入を行うNHibernateはコレクションのマッピングは、「ロードまたはオブジェクトまたはコレクション初期化できませんでした」私が得た以下のマッピングまし

<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. 

...。 私はカスケード= "すべて削除孤児"を実装する前に、以前は仕事をしていたので、ここでは簡単なことがないと確信しています。

どのようなヘルプも大幅に強化されます。

+0

あなたはあなたのエンティティとしているクエリを投稿できます失敗する。 – Nigel

答えて

0

マッピング自体が正しいことが判明しました。 オブジェクトの1つのコンストラクタで問題が発生しました...

私は、別のコンストラクタへのオーバーロードであったデフォルトのパラメータのないコンストラクタを持っていました。

public B() : this(null) { } 

他の建設業者は、すべて私のテストに合格作らコンストラクタに過負荷を取り除く、いずれかの方法で

public B(A c) 
{ 
    A= c; 
} 

のようなものを持っていた:D

関連する問題