私はNhibernateでこのクエリを実行しています
FROM Entity e
LEFT JOIN FETCH e.Collection1
LEFT JOIN FETCH e.Collection2
LEFT JOIN FETCH e.Collection3
結合したため、Collection3で同じ要素が何度も繰り返されています。アイテムの繰り返しを避けながら、すべてのコレクションを熱心にロードするにはどうすればよいですか?
私はNhibernateでこのクエリを実行しています
FROM Entity e
LEFT JOIN FETCH e.Collection1
LEFT JOIN FETCH e.Collection2
LEFT JOIN FETCH e.Collection3
結合したため、Collection3で同じ要素が何度も繰り返されています。アイテムの繰り返しを避けながら、すべてのコレクションを熱心にロードするにはどうすればよいですか?
私はあなたが使うことができると思います"Transformers.DistinctRootEntity"
:
session.QueryOver<Entity>()
.Fetch(entity => entity.SubEntity).Eager
.TransformUsing(Transformers.DistinctRootEntity)
.List();
しかし、それはWebサーバー層(SQL Serverではない)で行われました。
一部のフィールド(エンティティではない)のみを取得する場合は、DistinctまたはGroupByを使用できます。