title: loading multi-level child entities eagerly in NHibernate cause duplication problem
body: <p>i have a Model class which contains some images and some features :</p>
  
  <pre><code>public class Model
  {
      public int ModelId { get; set; }
      public string ModelName { get; set; }
      public virtual IList&lt;Feature&gt; ModelFeatures { get; set; }
      public virtual IList&lt;ModelImage&gt; ModelImages { get; set; }
  }
  
  public class ModelImage
  {
      public virtual int ModelImageId { get; set; }
      public virtual Model Model { get; set; }
      public virtual Resource Image { get; set; }
      public virtual int DisplayOrder { get; set; }
  }
  
  public class Feature
  {
      public virtual int FeatureId { get; set; }
      public virtual string Title { get; set; }
      public virtual string Text { get; set; }
  }
  </code></pre>
  
  <p>now i want to load ModelImages and Features of a Model eagerly, i'm using :</p>
  
  <pre><code>item = session.CreateCriteria&lt;Model&gt;()
         .Add(NHibernate.Criterion.Expression.Where&lt;Model&gt;(o =&gt; o.ModelId == id))
         .SetFetchMode("ModelImages", NHibernate.FetchMode.Eager)
         .SetFetchMode("ModelImages.Image", NHibernate.FetchMode.Eager)
         .SetFetchMode("ModelFeatures", NHibernate.FetchMode.Eager)
         .SetResultTransformer(NHibernate.Transform.Transformers.DistinctRootEntity)
         .UniqueResult&lt;Model&gt;();
  </code></pre>
  
  <p>but the result contain duplicate ModelImage and ModelFeatures,
  how could i apply a result transformer such as DistinctRoot to these child collections ?</p>
  
  <p>Thanks</p>