С нашими текущими свойствами структуры сохранения в дочернем объекте, указывающем на его родительский объект, всегда указывается на один и тот же экземпляр. Например, учитывая следующие объектные классыСсылочный идентификатор в рамках персистентности
public class Order
{
public int OrderId{get;set;}
public EntityCollection<LineItem> Items{get;}
}
public class LineItem
{
public Order Order{ get;set;}
}
Мы можем загружать заказ из базы данных, как это:
var order = Order.FindById(1000);
Теперь вот ключ к моему вопросу следующее верно для нашей нынешней системы
object.ReferenceEquals(order, order.Items[ 0 ].Order);
То есть свойство Order в позиции указывает на тот же экземпляр объекта заказа в памяти при доступе через свойство Items.
Я немного устал от поддержки наших инструментов сущности и хочу переключиться на NHibernate или другую инфраструктуру сохранения. Тогда мой вопрос: работают ли ленивые функции загрузки NHibernate или загружают новый экземпляр объекта Order для каждой позиции?