NHibernateの新機能です。子オブジェクトのリストを保存する際に問題が発生しています。NHibernateで保存されていない1対多のリスト
NOTE
<class name="Note" table="NOTE">
<id name="NoteID" column="NOTE_ID">
<generator class="identity" />
</id>
...
<list name="Sections" table="NOTE_SECTIONS" cascade="all" lazy="false">
<key column="NOTE_ID"/>
<index column="SORT_ORDER"/>
<one-to-many class="Section"/>
</list>
</class>
NOTEのSECTION
<class name="Section" table="NOTE_SECTIONS">
<id name="SectionID" column="Section_ID">
<generator class="identity" />
</id>
<property name="NoteID" column="NOTE_ID"/>
...
</class>
マッピングは、データを読み込むために完璧に動作します。私はNote Section
に変更を加えるときしかし、それが生成するクエリは、適切な手順を経ているように見えるが、その後、私は次のエラーを取得する:
NHibernate.Exceptions.GenericADOException: could not delete collection: [Domain.Note.Sections#1][SQL: UPDATE NOTE_SECTIONS SET NOTE_ID = null, SORT_ORDER = null WHERE NOTE_ID = @p0] ---> System.Data.SqlClient.SqlException: Cannot insert the value NULL into column 'NOTE_ID', table 'NOTE_SECTIONS'; column does not allow nulls. UPDATE fails.
私はは次のように節約するために読んだことがこれは双方向である必要があります。しかし、私は読まれたことは、双方向のマッピングはリストでは機能しないということです。私のコレクションにはオーダーが維持されていることが重要です。保存する最良の方法は何ですか?
。したがって、双方向関係は必要ありません。私は時にはNHibernateがもっと明らかであることを望んでいました。 inverse = "true"は初心者のための最も直感的なコマンドではありません。 –