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

本文关键字:-nhibernate 何保存 保存 两个 | 更新日期: 2023-09-27 18:00:24

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

Rfp.hbm.xml:

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

Bid.ibm.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的外键保存在投标记录中,但投标的外键不保存在RFP记录中。因此,我不能通过说bid.Rfp来获得特定的RFP的出价——它返回null。

我怎样才能做到这一点?

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

扩展属性

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