У меня есть два объекта, которые ссылаются друг на друга. С точки зрения чисто схемы, объект может иметь много экземпляров объекта два, которые ссылаются на него, но бизнес-логика указывает, что каждый экземпляр объекта 2 будет ссылаться на уникальный экземпляр объекта один и наоборот.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