У меня есть класс Model, который содержит несколько изображений и некоторые функции:
public class Model
{
public int ModelId { get; set; }
public string ModelName { get; set; }
public virtual IList<Feature> ModelFeatures { get; set; }
public virtual IList<ModelImage> 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; }
}
Теперь я хочу загружать ModelImages и функции модели с нетерпением, я использую:
item = session.CreateCriteria<Model>()
.Add(NHibernate.Criterion.Expression.Where<Model>(o => 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<Model>();
но результат содержит дубликаты ModelImage и ModelFeatures, как я могу применить преобразователь результатов, такой как DistinctRoot, к этим дочерним коллекциям?
Спасибо