如何打破NHibernate中的“循环引用”

时间:2013-12-17 04:00:35

标签: nhibernate reference circular-reference

我遇到了同样的问题,如下所示:

NHibernate - not-null property reference a null or transient value

根本原因就像Alun Harford所说的那样:“你正在保存一个完整的对象图,那个图是循环的”。请参阅以下代码

public class ApplyAuthorization : Activity
{
    public virtual ApplyStatus Status { get; set; }
    public virtual void Apply(Launch launch)
    {
        Status = Status ?? new ApplyStatus
        {
            For = this
        };
        Status.Update(launch);
    }
}

所以这种关系是双向的:ApplyAuthorization - (Status) - > ApplyStatus和ApplyStatus同时 - (For) - > ApplyAuthorization。

现在我知道原因但是如何处理它?<​​/ p>

1 个答案:

答案 0 :(得分:0)

我找到根本原因,但不知道。

References(m => m.For).Not.Nullable();

如果我删除了设置Not.Nullable()。

,问题就解决了

但是,如果DBA需要Not Null约束,我不知道如何处理。