С нашими текущими свойствами каркаса персистентности дочерней сущности, которые указывают на его родителя, всегда указывают на тот же экземпляр. Например, учитывая следующие классы сущностей
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 для каждой позиции?