あなたが求めていることを実際に行う方法を知っているとは言えません。NHibernate は、クエリしている実際のオブジェクトを返します。この場合、親オブジェクトのリスト/セットを返します。この親オブジェクトには、子オブジェクトのコレクションが関連付けられます。私の知る限り、このデータに 2 回リンクして異なる情報を引き出すという概念は、NHibernate では機能しません。
これを親で直接利用できるようにする必要がある場合は、Parent.hbm.xml ファイルの「where」属性を介してこれらの詳細を事前にフィルター処理した別の変数を親オブジェクトに作成することをお勧めします。これを行いたくない場合は、LINQ などを使用して、コレクション内の各親の最新の子オブジェクトを引き出すことをお勧めします。
Parent.hbm.xml ファイルにある "where" 属性の例は次のとおりです。
<set name="LatestChild" table="child" generic="true" inverse="true" where="*your sub-query here*">
<key column="parent_id" />
<one-to-many class="YourNameSpace.Model.Child,Model"/>
</set>
これは、コレクションの where クエリに一致する Child オブジェクトのみを返します。
これに関するドキュメントはこちらにあります。これは Hibernate のリファレンスであり、NHibernate ではありませんが、ほとんどの領域でほぼ同じです。
幸運を!