2010-07-16 5 views
3

Предположим, у вас есть два класса: «Человек и адрес».NHibernate - NHibernate распознает равенство объектов и изменение, соответственно, сохраняет поведение?

Лицо имеет ссылку на Адрес так:

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

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

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

Будет ли NHibernate выдавать один INSERT или два?

Благодаря

Дэвид

+0

Относится к объекту (например, сопоставленному классу со своей собственной таблицей) или объекту значения (например, отображенному как компонент и хранится в таблице Person) – DanP

+0

Это самостоятельная организация. База данных сильно нормализована (не очень подходит для NHibernate, которую я начинаю угадывать). – David

ответ

2

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

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

+0

Круто спасибо. – David

Смежные вопросы