Thanks zoid,
I actually had a look already at Projections but I don't really
understand how they work. For instance in the documentation :
IList results = session.CreateCriteria(typeof(Cat))
.SetProjection( Projections.RowCount() )
.Add( Expression.Eq("Color", Color.BLACK) )
.List();
There's no explanations about what this is supposed to return....
That said, even though I don't understand it, I have a feeling this is
not the correct projection for my problem. There is a Count() and
DistinctCount(), but again, I have no idea how to use them and there's
very little doc about this.
On 12 mai, 23:18, zoid <[email protected]> wrote:
> Try Projections.
>
> http://nhforge.org/doc/nh/en/index.html#querycriteria-projection
>
> On May 12, 3:56 pm, graphicsxp <[email protected]> wrote:
>
> > Hello,
>
> > I'd like to get some help with a HQL syntax. Here are my classes :
>
> > class Post
> > {
> > Source theSource ;
>
> > }
>
> > class Source
> > {
> > IList<Post> Posts;
>
> > }
>
> > In the mapping of Source I have :
>
> > <bag name="Posts" lazy="true">
> > <key column="SourceID" />
> > <one-to-many class="Post"/>
> > </bag>
>
> > and in the mapping of Post I have :
>
> > <many-to-one class="Source" name="theSource" cascade="all-delete-
> > orphan" column="SourceID" />
>
> > Now what I want is to get a list of all the source entities that are
> > used by all the post entities created in a given date range :
>
> > ICriteria sourceCriteria = SessionManager.GetCurrentSession
> > ().CreateCriteria(typeof (Source));
>
> > sourceCriteria.CreateCriteria("Posts")
> > .Add(Restrictions.Lt("DateCreated", DateTime.Parse(parameter.Attribute
> > ("enddate").Value)))
> > .Add(Restrictions.Gt("DateCreated", DateTime.Parse(parameter.Attribute
> > ("startdate").Value)));
>
> > //make sure we get distinct Source
> > sourceCriteria.SetResultTransformer(new
> > DistinctRootEntityResultTransformer());
>
> > return sourceCriteria.SetMaxResults(100).List<Source>();
>
> > That works fine. Now let's change the Source class slightly :
>
> > class Source
> > {
> > IList<Post> Posts;
> > int countPosts;
>
> > }
>
> > I still don't want to load the Posts list (you've noticed that I used
> > lazy-loading), however I would like my query to fill in the countPosts
> > property with the number of Posts using each publication.
>
> > How do I do that using the above HQL ?
>
> > Thanks
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---