OrderItemを含むOrderクラスがあります。 Orderクラスを保管すると、データベースにOrder情報が移入されますが、子OrderItemのいずれもそれぞれの表に保管されません。ここでは注文のマッピングは次のようになります。NHibernateはオブジェクトのコレクションを保存しません
if (o.CreatedBy == null || o.CreatedBy == string.Empty) {
o.CreatedBy = userID.ToString();
foreach (OrderItem oi in obj.OrderItems) {
oi.CreatedBy = userID.ToString();
oi.ModifiedBy = userID.ToString();
oi.ModifiedOn = DateTime.Now;
}
}
o.ModifiedBy = userID.ToString();
o.ModifiedOn = DateTime.Now;
ISession session = NHibernateHelper.GetCurrentSession();
ITransaction tx = session.BeginTransaction();
session.Save(o);
tx.Commit();
NHibernateHelper.CloseSession();
:ここで注文を保存するためのコードは次のようになります。
<class name="OrderItem" table="OrderItems">
<id name="OrderItemID" column="OrderItemID" type="Int64" unsaved-value="0">
<generator class="identity"/>
</id>
<property name="OrderID" />
<many-to-one name="Order" class="Order" column="OrderID" not-null="true" />
</class>
:
<class name="Order" table="Orders">
<id name="OrderID" column="OrderID" type="Int64" unsaved-value="0">
<generator class="identity"/>
</id>
<list name="OrderItems" table="OrderItems" inverse="true" >
<key column="OrderID"/>
<index column="OrderItemID" />
<one-to-many class="OrderItem" />
</list>
は、ここでのOrderItemのマッピングは次のようになります。
子OrderItemsが保存されていない理由は何ですか?
あなたが少しを投稿できる: - 上記の例あなたは新しい秩序保存にしようとしているが、あなたは個別にOrderItem.Orderプロパティを更新し、アイテムの更新()の呼び出しを発行する必要がありますあなたのオブジェクトがどのようにクリエイティブであるかを示すコード関係は確立され、その後救われましたか?あなたのマッピングはうまくいくので、私の推測では、コードに関連していると思います。 –