1

私はNhibernateでこのクエリを実行しています

FROM             Entity e
LEFT JOIN FETCH  e.Collection1
LEFT JOIN FETCH  e.Collection2
LEFT JOIN FETCH  e.Collection3 

結合したため、Collection3で同じ要素が何度も繰り返されています。アイテムの繰り返しを避けながら、すべてのコレクションを熱心にロードするにはどうすればよいですか?

4

2 に答える 2

0

私はあなたが使うことができると思います"Transformers.DistinctRootEntity"

session.QueryOver<Entity>()
   .Fetch(entity => entity.SubEntity).Eager
   .TransformUsing(Transformers.DistinctRootEntity)
   .List();

しかし、それはWebサーバー層(SQL Serverではない)で行われました。

一部のフィールド(エンティティではない)のみを取得する場合は、DistinctまたはGroupByを使用できます。

于 2012-04-05T14:39:04.967 に答える