IIRC you can write:

   .CreateCriteria<Core.Domain.Application>()
.SetFetchMode<Core.Domain.Application>(app => app.ApplicationWorkflows, FetchMode.Eager) .SetFetchMode<Core.Domain.Application>(app => app.ApplicationWorkflows[0].ApplicationStatus, FetchMode.Eager)
   .Add(SqlExpression.In<Core.Domain.Application>(app =>...

Also remember to consider performance:
http://nhforge.org/blogs/nhibernate/archive/2008/09/06/eager-loading-aggregate-with-many-child-collections.aspx

--------------------------------------------------
From: "Mike" <[email protected]>
Sent: Tuesday, July 06, 2010 7:46 PM
To: "nhusers" <[email protected]>
Subject: [nhusers] Setting FetchMode on a grandchild object

I have the following Criteria query (using Lambda extensions):

var workflowResult = repository.GetSession()
               .CreateCriteria<Core.Domain.Application>()
               .SetFetchMode<Core.Domain.Application>(app =>
app.ApplicationWorkflows, FetchMode.Join)
               .Add(SqlExpression.In<Core.Domain.Application>(app =>
app.ID, uniqueIds))
               .SetResultTransformer(new
DistinctRootEntityResultTransformer())
               .Future<Core.Domain.Application>();

This is working correctly.  Each Application eagerly loads the
ApplicationWorkflows collection.  However, I'd like to go one deeper
and load the ApplicationStatus object of each ApplicationWorkflow.  I
can do this with the following HQL but would like to translate to
Criteria:

var workflowQuery = "SELECT DISTINCT app" +
                              " FROM Application app" +
                              " JOIN FETCH app.ApplicationWorkflows
awf" +
                              " JOIN FETCH awf.ApplicationStatus" +
                              " WHERE app.ID IN (:appList2)";

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.



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

Reply via email to