public Parent GetByName(string Name)
{
return _session.CreateCriteria<Parent>()
.Add(Restrictions.Eq("Name", Name))
.SetFetchMode("Children", FetchMode.Eager)
.SetResultTransformer(new DistinctRootEntityResultTransformer())
.UniqueResult<Parent>();
}
public ParentDetailVM GetMeAParent(string Name)
{
Parent parent;
using (var tx = _session.BeginTransaction())
{
//This works well, one single query loading
//both parent and children
parent = _parentRepository.GetByName(Name);
//If I include this as suggested by NHProfiler
//it all of the sudden sends a new query for each child
//and a query for the grandchildren collection
tx.Commit();
}
return Mapper.Map<Parent, ParentDetailVM>(parent);
}
J'ai vérifié pour m'assurer que rien dans les fichiers de mappage n'a été défini pour charger vivement. Je ne peux pas comprendre pourquoi cela fonctionne si je laisse la validation de transaction, mais sinon, N questions plus. Quelqu'un sait pourquoi cela pourrait se produire?Obtenir plusieurs requêtes lorsque la transaction est validée, pourquoi?
Cela a beaucoup de sens, les données sont assez approximatives. Je vais regarder dans et voir ce que je trouve. –