tags:

views:

38

answers:

1

Hi All,

I have an object Parent which has a list of Children:

class Parent {Id, Name, IList children} class Child {Id, Name}

I need to select all parents where there is a condition for their children but I do not want to get duplicate rows (don't want the children details to appear in select list)

Here is the code:

session.CreateCriteria(typeof(Parent)) .SetFetchMode("children", FetchMode.Select); .CreateCriteria("children").Add(Subqueries.PropertyIn("Id", {1,2,3,4})) .List();

The query adds all proprties of child class to select list which results in duplicate Parents.

Is there any way I can select all parents without having the child details in the select list?

Thanks

A: 

One possible solution:

session.CreateCriteria<Parent>()
       .CreateCriteria("children")
       .Add(Subqueries.PropertyIn("Id", {1,2,3,4}))
       .SetResultTransformer(Transformers.DistinctRootEntity)
       .List<Parent>();
Diego Mijelshon