NHibernate - распознает ли NHibernate равенство объектов, а изменение - соответственно поведение сохранения? - PullRequest
3 голосов
/ 16 июля 2010

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

У человека есть ссылка на адрес:

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

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

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

Будет ли NHibernate выдавать одну ВСТАВКУ или две?

Спасибо

David

1 Ответ

2 голосов
/ 16 июля 2010

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

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

...