現在の永続性フレームワークのプロパティは、その親を指している子エンティティのプロパティが常に同じインスタンスを指しています。たとえば、以下のエンティティクラス永続性フレームワークの参照ID
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オブジェクトの新しいインスタンスをロードするのでしょうか?