Hi Luke,

sorry for the delay, that's really a busy period.
I've just tried once again and it works fine for me, could you provide more
details about your scenario?

.m
___________________________________
Mauro Servienti  | Microsoft MVP - Visual C#
MCTS /MCPD | IM: [email protected]

-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf
Of Luka
Sent: martedì 28 settembre 2010 09:08
To: nhusers
Subject: [nhusers] Re: Filtering a recursive tree

Yes, I do that, but what I get is:
1st query will get me only the 1st and 2nd level.
then when I build the tree i will get another query for every child level in
the tree. so I will get other children level lazy loaded.

On Sep 27, 8:31 pm, "Mauro Servienti" <[email protected]>
wrote:
> Hi Luka,
>
> I quote myself:
>
> > What I need to do is retrieve the entire tree in one single 
> > round-trip to the db and I can achieve that by loading the entire 
> > table and letting the identity map works for me, it works like a charm.
>
> Simply load the entire "table", e.g.:
>
> var criteria = session.CreateCriteria<Node>()
>         .CreateAlias( "ChildNodes", "cn" )
>         .SetResultTransformer( ...distinct... );
>
> var tree = criteria.List<Node>()
>         .Where( n => n.Parent == null )
>         .ToList();
>
> .m
> ___________________________________
> Mauro Servienti  | Microsoft MVP - Visual C# MCTS /MCPD | IM: 
> [email protected]
>
>
>
>
>
>
>
> -----Original Message-----
> From: [email protected] [mailto:[email protected]] On 
> Behalf
>
> Of Luka
> Sent: lunedì 27 settembre 2010 16:27
> To: nhusers
> Subject: [nhusers] Re: Filtering a recursive tree
>
> Hi,
> How did you manage to get the complete three in one query?
> If I join with alias I get parent and child but not ie.
> child.child.childrens. (4 level tree)
>
> On Sep 27, 11:59 am, Mauro Servienti <[email protected]>
> wrote:
> > I solved the problem by myself :-)
>
> > It's enought to create an alias for the ChildNodes and "emit" the 
> > same restrictions on the alias as well.
>
> > Really cool! I love NH :-)
>
> > .m
>
> > On Sep 27, 11:51 am, "Mauro Servienti" <[email protected]>
> > wrote:
>
> > > Hi all,
>
> > > I have a simple tree like this one:
>
> > > class Node
>
> > > {
>
> > >    String Name{ get; set; }
>
> > >    Node Parent{ get; set; }
>
> > >    IList<Node> ChildNodes{ get; set; }
>
> > > }
>
> > > What I need to do is retrieve the entire tree in one single 
> > > round-trip to the db and I can achieve that by loading the entire 
> > > table and letting the identity map works for me, it works like a
charm.
>
> > > Now I need to achieve the same result but issuing a where 
> > > condition,
> e.g.
> > > filtering all the nodes whose Name starts with "Foo*". The query 
> > > works fine and, using NH Proof, I can see that the correct list of
> > > Node(s) are loaded but then accessing to the ChildNodes property 
> > > issues a new sql command to load children.
>
> > > Is there a way to explain NH to use the same "condition" while 
> > > loading the entire graph in order to go on using a single 
> > > round-trip to
> the db?
>
> > > Thanks in advance, regards
>
> > > .m
>
> > > ___________________________________
>
> > > Mauro Servienti  | Microsoft MVP - Visual C#
>
> > > MCTS /MCPD- | IM: [email protected]
>
> > >  smime.p7s
> > > 8KViewDownload
>
> --
> 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
athttp://groups.google.com/group/nhusers?hl=en.
>
>
>
>  smime.p7s
> 8KViewDownload

--
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.

Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to