如何在两个表中保存外键? - nhibernate

时间:2013-02-21 05:10:11

标签: c# nhibernate asp.net-mvc-4

我有两个模型,它们之间有一对一的关系 - RFP和Bid。 这是相关的代码 -

Rfp.hbm.xml:

<one-to-one name="Bid" class="Bid" property-ref="Rfp" />

Bid.hbm.xml:

<many-to-one name="Rfp" class="Rfp" column="RfpId" not-null="true" />

Rfp.cs:

public virtual Bid Bid { get; set; }

Bid.cs:

public virtual Rfp Rfp { get; set; }

当我执行以下操作时 -

bid.Rfp = Repository.Get<Models.Rfp>(command.BidDetails.RfpId);
Repository.SaveOrUpdate(bid);

RFP的foregin密钥保存在Bid记录中,但Bid的外键未保存在RFP记录中。因此,我无法通过说bid.Rfp获得特定RFP的出价 - 它返回null。

我该如何做到这一点?

1 个答案:

答案 0 :(得分:0)

展开属性

private Rfp rfp;
public virtual Rfp Rfp
{
    get { return rfp; }
    set {
        rfp = value;
        if (rfp != null && rfp.Bid != this)
            rfp.Bid = this;
    }
}