NHibernateで比較的簡単な親子(Invoice-InvoiceEntry)シナリオをマップしようとしています。ここではいくつかの私のマッピングファイルの一部である:Invoice.hbm.xmlからNHibernateコレクションマッピングの問題
<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.ObjectNotFoundException:私はNHibernateは介してリポジトリからインボイスをロードしようとするが、私は次のエラーを取得する与えられた識別子とは行は[Jobflow.Models.Entities.InvoiceEntry#55]
が存在しません55は実際にInvoicesテーブルの正しいIDであり、InvoiceEntriesテーブルの正しいInvoiceIDです。しかし、NHibernateがEnvoiceEntryIDであるInvoiceEntries PKを探しているようです。
誰でも私にこれを手伝ってもらえますか?
詳細を投稿して、> _ < – Aren