我有一个模型类,其中包含一些图像和一些功能:
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; }
}
现在我想急切地加载模型的模型图像和特征,我正在使用:
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)应用于这些子集合?
谢谢