これを実装する最良の方法は、フィルターを使用することです。マッピング (エンティティとバッグの両方) でフィルターを定義し、「部門」を選択する前に、必要な日付のパラメーターでフィルターを有効にします。
session.EnableFilter("HireDateFilter").SetParameter("dateParameter", DateTime.Now.AddDays(-30));
マッピングをそのままにして、遅延ロードされたコレクションにカスタム定義フィルターを適用することもできます。
session.CreateFilter(department.Employees, "HireDate >= :dateParameter").SetParameter("dateParameter", DateTime.Now.AddDays(-30));
制限を適用することだけが必要な場合は、mapping-filter オプションを使用することをお勧めします。これは、コレクションを選択的に熱心にフェッチし、この方法でオブジェクト グラフを 1 回の選択で取得できるためです。
追加の操作 (ページングなど) を実行する場合は、CreateFilter の方が適していますが、より複雑なシナリオでは、Employees を対象とするクエリの方が適しています。