オブジェクト階層は Parent->Child です (Lazy loading はデフォルトで true に設定されています) データベースからすべての Parent オブジェクトをロードしています。すべての子オブジェクトの型は ChildProxyGUID になります。
それから私は書く
IList<Parent> parentList = NHibernateHelper.List<Parent>();
foreach(Parent parent in parentList)
{
if(!NHibernateUtil.IsInitialized(parent.Child))
{
NHibernateUtil.Initialize(parent.Child);
if(parent.Child.GetType() != typeof(Child)) //parent.Child.GetType() return me proxy type
throw new ArgumentException("wrong type");
}
}
parent.Child を Real タイプの「Child」に変換するにはどうすればよいですか。システムチェックのため、本当の型 (Child) が必要です。この例は実際には単純ですが、非常に複雑なマッピングと関係があります。
そこに何かアイデアはありますか?