Caricamento di entità infantili multi-livello con impazienza nel problema della duplicazione della dublernate
-
29-10-2019 - |
Domanda
Ho una classe modello che contiene alcune immagini e alcune funzionalità:
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; }
}
Ora voglio caricare ModelImages e caratteristiche di un modello con impazienza, sto usando:
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>();
Ma il risultato contiene modelimage duplicati e modelfeature, come potrei applicare un trasformatore di risultati come Distinctroot a queste collezioni per bambini?
Grazie
Nessuna soluzione corretta
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow