2010-06-09 4 views
2

i ont cette méthode:Problème d'utilisation setFetchMode dans NHibernate

public IEnumerable<Album> GetAllAlbumsWithTracks() 
    { 
     var albums = Session.CreateCriteria(typeof(Album)) 
      .SetFetchMode("Tracks", FetchMode.Eager) 
      .SetResultTransformer(new DistinctRootEntityResultTransformer()).Future<Album>(); 

     return albums; 
    } 

mais si je mets .SetMaxResult (10) je reviens 10 pistes non Albums. Comment puis-je réparer ça?

+0

similaires à http://stackoverflow.com/questions/3221482/nhibernate-eager-loading-collections-paging? – David

Répondre

1

essayez de régler le mode de récupération pour rejoindre

+1

si je n'ajoute pas SetMaxResult je récupère tout en une seule requête. si je mets FetchMode.Join & SetMaxResult alors j'ai des pistes. si je mets FetchMode.Select & SetMaxResult puis j'obtiens des albums mais je reçois Sélectionnez N + 1 pas une seule requête. comment puis-je obtenir 10 albums dans une seule requête? – CurlyFro