親を指す子エンティティの現在の永続フレームワークプロパティでは、常に同じインスタンスを指します。たとえば、次のエンティティクラスがあるとします
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オブジェクトの新しいインスタンスを読み込むのでしょうか。