NHibernate - распознает ли NHibernate равенство объектов, а изменение - это соответственно сохранение поведения?
Допустим, у вас есть два класса, Персона и Адрес.
Человек имеет ссылку на адрес, как это:
public class Person
{
public virtual Address Residence {get;set;}
}
Address имеет переопределение.Equals, которое определяет, представляют ли два экземпляра Address один и тот же физический адрес (сравнивая, скажем, почтовый индекс и первую строку).
Допустим, у вас есть два несохраненных объекта Person, которые содержат ссылки на два несохраненных объекта Address, которые являются отдельными (с точки зрения равенства ссылок), но равными с точки зрения реализации.Equals.
Выпустит ли NHibernate один INSERT или два?
Спасибо
Дэвид
1 ответ
Решение
Он будет вставлен дважды. Соответствие двум переходным экземплярам по равенству технически невозможно.
Вызывающий код будет отвечать за сопоставление этих экземпляров и замену их одной и той же ссылкой.