我有两个引用对方的对象。从纯粹的模式角度来看,对象可以有多个引用它的对象2的实例,但业务逻辑指定对象2的每个实例将引用对象1的唯一实例,反之亦然。nhibernate - 循环引用不更新
例子:
public class Object1 {
public Guid Id {get;set;}
public Object2 Object2 {get;set;}
public Object1ClassMap : ClassMap<Object1>
{
// ...
References<Object2>(x=>x.Object2)
.Column("Object2Id")
.Cascade.SaveUpdate()
.Not.LazyLoad();
}
}
public class Object2 {
public Guid Id {get;set;}
public Object1 Object2 {get;set;}
public Object2ClassMap : ClassMap<Object1>
{
// ...
References<Object1>(x=>x.Object1)
.Column("Object1Id")
.Cascade.SaveUpdate()
.Not.LazyLoad();
}
}
当我做到以下几点:
instanceOfObject1.Object2 = instanceOfObject2
我期望NHibernate的检测后引用和自动为我做
instanceOfObject2.Object1 = instanceOfObject1
,但这不会发生。我必须在两个方向上手动更新。任何方式来避免这种情况?
我试过一对一的,但显然这只有在两个人共享一个主键时才有效,但这些都不会。 – Chris 2009-12-04 13:44:46