Nhibernate双向一对一(不是HasOne)

时间:2011-09-20 04:56:59

标签: nhibernate fluent-nhibernate

我正在尝试在两个班级之间建立一对一的关系(双面参考关系)。两个属性都不应该是可空的。问题是当你尝试先将一个保存在另一个上时,我会遇到Null或Transient值错误。

class A
{
    C C {get;set;}
}

class C
{
    A A {get;set;}
}


class AMapping : ClassMap<A>
{
    AMapping()
    {
        References(x=>x.C)
            .Not.Nullable();
    }
}
class CMapping : ClassMap<C>
{
    CMapping()
    {
        References(x=>x.A)
            .Not.Nullable();
    }
}

我明白,因为NHibernate还不能引用一个不存在的对象(在数据库中),但是我是否可以使用一种模式或功能来规避这种限制?

1 个答案:

答案 0 :(得分:0)

尝试设置cascade =&#34; none&#34;在多对一映射的一侧。类似的东西:

References(x=>x.C)
        .Not.Nullable()
        .Cascade.None();