由於我們當前的持久性框架屬性指向它的父節點,它總是指向同一個實例。例如,給出下面的實體類持久性框架中的引用標識
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對象的新實例?