NHibernate关联保存没有多对一ID

时间:2012-04-13 15:43:11

标签: nhibernate

保存我的根元素及其所有关联,但不保存引用的ID。

实体关联

MeasureDomain 1 - > * MeasureSubDomains 1 - > * MeasureControls 1 - > *措施

我在除最后一个实体之外的所有实体上都有addRange方法。这是一个例子:

/// <summary>
/// Gets or sets the sub domains.
/// </summary>
/// <value>
/// The sub domains.
/// </value>
public virtual IList<MeasureSubDomain> SubDomains { get; set; }
/// <summary>
/// Adds the sub domain.
/// </summary>
/// <param name="subDomain">The sub domain.</param>
public virtual void AddSubDomains(IEnumerable<MeasureSubDomain> subDomains)
{
    foreach (var item in subDomains)
        this.SubDomains.Add(item);
}

当我在会话中调用save方法时,所有内容都会保存,但引用会丢失。看我的例子:

MeasureDomain条目

id  code_1  omschrijving    createdat   createdby   modifiedat  modifiedby  toelichting
75  05  Beveiligingsbeleid  NULL    NULL    NULL    NULL    NULL

MeasureSubDomain条目

id  code    omschrijving    domein  createdat   createdby   modifiedat  modifiedby  toelichting
204 01  Informatiebeveo     NULL    NULL    NULL    NULL    NULL    Directie richting en ondersteuning bieden voor informatiebeveiliging overeenkomstig de bedrijfsmatige eisen en relevante wetten en voorschriften

列圆顶是NULL并且应该具有我保存的MeasureDomain的值75,我该如何修复 此?

1 个答案:

答案 0 :(得分:3)

您需要告诉SubDomain它属于哪个域

foreach (var item in subDomains)
{
        item.MeasureDomain = this;
        this.SubDomains.Add(item);
}
session.Update(this);