使用我们当前的持久性框架属性,指向它的父实体的子实体总是指向同一个实例。例如,给定以下实体类
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 属性访问时,行项目上的 Order 属性指向内存中订单对象的完全相同的实例。
我有点厌倦了维护我们的实体工具,想切换到 NHibernate 或其他持久性框架。那么我的问题是,NHibernate 的延迟加载功能是否以相同的方式工作,还是会为每个订单项加载 Order 对象的新实例?