hi guys, i've got strange problem that i'm hoping is just down to my inexperience with NH...
i asked this question on stackoverflow: http://stackoverflow.com/questions/1244995/partially-populate-child-collection-with-nhibernate and learnt that it is by design that NH lazy loads the entire child collection when you itterate over it, regardless of a supplied restriction (in this case i only want child objects with a certain date). so the recomendation was to just load the parent object, then separately query for the filtered children i wanted, then associate them. so i've tried that, and it looks to be a winner, except, what ever i do, NH keeps hitting the Db and fully populating the child collection, even though its lazy loaded, and i'm not iterating over it. very annoying. what i want to do is something like the following: var post = session.CreateCriteria<BlogPost>() .Add(Restrictions.Eq("Id", 1)) .UniqueResult<BlogPost>(); var comments = session.CreateCriteria<Comment>() .Add(Restrictions.Eq("BlogPostId", 1)) .Add(Restrictions.Eq("DatePosted", new DateTime(2009, 8, 1))) .List<Comment>(); post.Comments = comments; but running this bit of code with Sql Profilier running shows that 3 queries get sent to the database, the first one is to get the single post (good) when the fist statement gets executed, and when the second statement gets executed, we get two queries sent to the Db, the first of these is to get the filtered list of comments (good!), but then another is sent to get the entire list of comments (bad!). the example i've got here is not the domain my project is in. in the real domain the child collection is MASSIVE, and would never be queried without a filter on the date, so i REALLY dont want the whole lot coming back! has anyone got any ideas? cheers, chris. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "nhusers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/nhusers?hl=en -~----------~----~----~----~------~----~------~--~---
