我有兩個引用對方的對象。從純粹的模式角度來看,對象可以有多個引用它的對象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