2009-06-10 10 views
0

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を探しているようです。

誰でも私にこれを手伝ってもらえますか?

答えて

1

この1つは解決されており、それは私のせいです。 InvoiceEntryエンティティコレクションが別のエンティティから間違ってリンクされていることが判明しました。誰かが詳細に興味があれば、私に知らせてください。

+2

詳細を投稿して、> _ < – Aren