Hi,

I just upgraded to 2.1.0 and ProjectionCriteria is now no where to be
seen :( Does anyone have any examples of how I can do this relatively
common query?

Thanks,

On Aug 10, 3:58 pm, imm102 <ianmmc...@gmail.com> wrote:
> Hi,
>
> I am trying to come up with a criteria to restrict an aggregate root
> based on a set of tagIds.
>
> public class Foo
> {
>      public virtual int Id { get;set; }
>      public virtual IList<Tag> Tags { get;set; }
>
> }
>
> public class Tag
> {
>      public virtual int Id { get;set; }
>      public virtual string Text { get;set; }
>
> }
>
> As you can see I have no reference from a tag back to a Foo because
> tags can refer to many different entities. The Query I have so far is
> below (I am passing a list of tag Ids into the idsIn collection.
>
> IList<int> idsIn;
>
> var dc = DetachedCriteria.For(typeof(Foo), "f").
>                 .CreateCriteria("Tags", "t")
>                 .Add(Restrictions.InG("t.Id", idsIn))
>             .SetProjection( Projections.ProjectionList()
>               .Add(Projections.Property("f.Id"))
>               .Add(Projections.RowCount(), "RowCount")
>               .Add(Projections.GroupProperty("f.Id")))
>           .ProjectionCriteria.Add(Restrictions.Eq("RowCount",
> idsIn.Count));
>
> }
>
> var c = Session.CreateCriteria(typeof(Foo)).Add(Subqueries.PropertyIn
> ("Id", dc))
>
> I am using a projection to count the number of rows returned. I want
> to filter on the number of ids passed so if tags "X", "Y", "Z" are
> passed in then it matched only Foos which have all three. I get the
> exception {"Could not find property RowCount on Model.Foo"}
>
> I don't know if this is the correct/best way to be doing this sort of
> query. I have also read that ProjectionCriteria doesn't work properly
> until 2.1.0 which I have yet to upgrate to.
>
> Any help would be great.
>
> Thanks,
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"nhusers" group.
To post to this group, send email to nhusers@googlegroups.com
To unsubscribe from this group, send email to 
nhusers+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/nhusers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to