我想在NHibernate中映射一個相對簡單的父 - 子(Invoice-InvoiceEntry)場景。下面是我的映射文件某些部分:NHibernate的集合映射問題
從Invoice.hbm.xml<set name="InvoiceEntries" table="InvoiceEntries" inverse="true" cascade="all-delete-orphan" lazy="false">
<key column="InvoiceID" />
<one-to-many class="Jobflow.Models.Entities.InvoiceEntry, Jobflow" />
</set>
從InvoiceEntry.hbm.xml
<many-to-one name="Invoice" class="Jobflow.Models.Entities.Invoice, Jobflow" column="InvoiceID" not-null="true" lazy="false" />
從Invoice.cs
private ISet<IInvoiceEntry> _invoiceEntries = new HashedSet<IInvoiceEntry>();
public virtual ISet<IInvoiceEntry> InvoiceEntries
{
get { return _invoiceEntries; }
set { _invoiceEntries = value;}
}
發生什麼事是,當我保存發票一切都很好。一條新記錄被插入到兩個表中。 InvoiceEntries表中列InvoiceID中的值與Invoices表中的ID列相同。但是,當我嘗試加載通過NHibernate的版本庫中的發票,我得到了以下錯誤:
NHibernate.ObjectNotFoundException:沒有行與指定的標識符存在[Jobflow.Models.Entities.InvoiceEntry#55]
55確實是Invoices表中正確的ID和InvoiceEntries表中正確的InvoiceID。但是,看起來好像NHibernate可能正在尋找InvoiceEntryID而不是EnvoiceEntryID。
有人可以幫我嗎?
我希望你剛剛發佈的細節以> _ < – Aren 2011-05-09 17:17:59