由于我们当前的持久性框架属性指向它的父节点,它总是指向同一个实例。例如,给出下面的实体类持久性框架中的引用标识
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);
即,通过Items属性访问时,订单项上的订单属性指向内存中订单对象的完全相同的实例。
我有点厌倦了维护我们的实体工具,并希望切换到NHibernate或其他持久性框架。我的问题是,NHibernate的延迟加载功能是否以相同的方式工作,或者是否会为每个行项目加载Order对象的新实例?