我有一个问题:
我必须列出SalesHeader和SalesPosition表,其中SalesPosition是SalesHeader的子表。
对象引用一个未保存的临时实例-在刷新之前保存临时实例。
在NHibernate.Type.EntityType.GetIdentifier(对象值,ISessionImplementor会话)
在NHibernate.Type.TypeFactory.findderty(标准属性[]属性,对象[]x,对象[]y,布尔值[]includeColumns,布尔值anyUninitializedProperties,ISessionImplementor会话)
在NHibernate.Event.Default.DefaultFlushEntityEventListener.DirtyCheck(FlushEntityEvent事件)
在NHibernate.Event.Default.AbstractFlushingEventListener.FlushEntities(FlushEvent事件)
在NHibernate.Event.Default.AbstractFlushingEventListener.FlushEverythingToExecutions(FlushEvent事件)
在NHibernate.Event.Default.DefaultFlushEventListener.OnFlush(FlushEvent事件)
在NHibernate.Impl.SessionImpl.Flush()上
在NHibernate.Transaction.adotransation.Commit()
这是我对SalesPosition的映射:
<class name="SalesPosition" table="SalesPosition" lazy="false" >
<id name="Id" column="Id" type="Guid">
<generator class="assigned"/>
</id>
<version name="ObjectVersion" column="ObjectVersion"/>
.... some fields
<many-to-one name="SalesHeader" class="SalesHeader" foreign-key="FK_SalesHeader_SalesPosition" >
<column name="SalesHeaderId"/>
</many-to-one>
</class>
这是SalesHeader的映射:
<class name="SalesHeader" table="SalesHeader" lazy="false" >
<id name="Id" column="Id" type="Guid">
<generator class="assigned"/>
</id>
<version name="ObjectVersion" column="ObjectVersion"/>
... some fields
<set name="SalesPosition" lazy="true" inverse="true" cascade="delete" >
<key>
<column name="SalesHeaderId"/>
</key>
<one-to-many class="SalesPosition"/>
</set>
</class>
有人能给我一个提示吗?我要做的是,我只能将SalesHeader的键交给SalesPosition实体进行持久化(或者SalesHeader实体和NHibernate只使用该键)。
非常感谢。
祝你好运,托马斯