【问题标题】:NHibernate collection mapping problemNHibernate 集合映射问题
【发布时间】:2009-06-10 09:15:26
【问题描述】:

我正在尝试在 NHibernate 中映射一个相对简单的父子 (Invoice-InvoiceEntry) 场景。以下是我的映射文件的一些部分:

来自 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 可能正在寻找 InvoiceEntries PK,它是 EnvoiceEntryID。

谁能帮我解决这个问题?

【问题讨论】:

    标签: collections nhibernate-mapping


    【解决方案1】:

    好吧,这个问题已经解决了,这又是我的愚蠢。事实证明,InvoiceEntry 实体集合也错误地从另一个实体链接。如果有人对细节感兴趣,请告诉我。

    【讨论】:

    • 我希望您刚刚发布详细信息以开始 >_
    猜你喜欢
    • 2010-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多