ルート エンティティをロードし、すべての子コレクションと集約メンバーを積極的にロードしたいと考えています。
SetFetchMode
FluentNHibernate でを使用しようとしましたが、3 レベルの深さがあるため、子コレクションの 1 つで重複が発生しています。DistinctRootEntityResultTransformer
残念ながら、ルートの重複を削除するだけです。
return Session.CreateInvoiceBaseCriteria(query, archived)
.AddOrder(new Order(query.Order, query.OrderType == OrderType.ASC))
.SetFetchMode("States", FetchMode.Eager)
.SetFetchMode("Attestations", FetchMode.Eager)
.SetFetchMode("AttestationRequests", FetchMode.Eager)
.SetFetchMode("AttestationRequests.Reminders", FetchMode.Eager)
.SetResultTransformer(new DistinctRootEntityResultTransformer())
.List<Invoice>();
これをアーカイブするためにマルチクエリまたは同様のものを使用できますか?
さらに、このアプローチでは、データベースからの結果セットが不必要に膨大になるのではないでしょうか?
助言がありますか?