NHibernate - распознает ли NHibernate равенство объектов, а изменение - это соответственно сохранение поведения?

Допустим, у вас есть два класса, Персона и Адрес.

Человек имеет ссылку на адрес, как это:

public class Person
{
  public virtual Address Residence {get;set;}
}

Address имеет переопределение.Equals, которое определяет, представляют ли два экземпляра Address один и тот же физический адрес (сравнивая, скажем, почтовый индекс и первую строку).

Допустим, у вас есть два несохраненных объекта Person, которые содержат ссылки на два несохраненных объекта Address, которые являются отдельными (с точки зрения равенства ссылок), но равными с точки зрения реализации.Equals.

Выпустит ли NHibernate один INSERT или два?

Спасибо

Дэвид

1 ответ

Решение

Он будет вставлен дважды. Соответствие двум переходным экземплярам по равенству технически невозможно.

Вызывающий код будет отвечать за сопоставление этих экземпляров и замену их одной и той же ссылкой.

Другие вопросы по тегам