So, for join fetch the Left.JoinQueryOver(...) is equivalent to myQueryOver.Fetch( x => x.Ref).Eager ?
-- Mohamed Meligy Senior Developer (Microsoft Technologies - Technical Delivery) Injazat Data Systems P.O. Box: 8230 Abu Dhabi, UAE [ Local Time Offset: GMT +4 ] Direct: +971 2 4045385 Mobile: +971 50 2623624, +971 55 2017 621 E-mail: [email protected] Weblog: http://gurustop.net On Fri, Jun 25, 2010 at 12:30 AM, Diego Mijelshon <[email protected]>wrote: > It would actually be > > session.QueryOver<Project>().Left.JoinQueryOver(p => p.Type).OrderBy(t => > t.Label).Asc > > The problem is, that is equivalent to: > > select project > from Project project > left join fetch project.Type as type > order by type.Label > > ...because QueryOver is just a pretty face for Criteria, and joins in > Criteria always fetch the association. > Also, it has none of the benefits of Linq, except the familiar syntax. > > Diego > > > On Thu, Jun 24, 2010 at 17:05, Mohamed Meligy <[email protected]>wrote: > >> You can do left join in the QueryOver API (very similar to LINQ method >> chaining) you can do something like: >> >> session.QueryOver<Project>().Left.JoinQueryOver(p => p.Type).OrderBy(p => >>> p.Type.Label).Take(...); >>> >> >> (warning: not tested, try also session.QueryOver<ProjectType>() if >> p.Typedoesn't work. I haven't tried the code and there is no XML >> documentation to >> advise) >> >> >> Regards, >> >> -- >> Mohamed Meligy >> Senior Developer (Microsoft Technologies - Technical Delivery) >> Injazat Data Systems >> P.O. Box: 8230 Abu Dhabi, UAE >> [ Local Time Offset: GMT +4 ] >> >> Direct: +971 2 4045385 >> Mobile: +971 50 2623624, +971 55 2017 621 >> >> E-mail: [email protected] >> Weblog: http://gurustop.net >> >> >> On Thu, Jun 24, 2010 at 5:43 PM, Diego Mijelshon >> <[email protected]>wrote: >> >>> Hmmm... it's slightly unexpected as a behavior, although it's consistent >>> with the equivalent HQL: >>> >>> from Project order by Project.Type.Label >>> >>> It generates an inner join (actually, a select from two tables with a >>> where clause) >>> >>> With HQL you can use explicit left joins: >>> >>> select project >>> from Project project >>> left join project.Type as type >>> order by type.Label >>> >>> But I don't know if it's possible with Linq... >>> >>> Diego >>> >>> >>> >>> On Thu, Jun 24, 2010 at 08:59, Kakone <[email protected]> wrote: >>> >>>> Hello, >>>> >>>> I have a project class with a Type property (it's a nullable reference >>>> to a ProjectType entity). >>>> >>>> I want to order like this : >>>> Session.Query<Project>().OrderBy(p.Type.Label).ToList() >>>> When I do this, I don't get the objects where Type property value is >>>> null. >>>> >>>> So, I tried to write this : >>>> Session.Query<Project>().OrderBy(p => p.Type == null ? null : >>>> p.Type.Label).ToList() >>>> But, in this case, I've got an exception : "No persister for : >>>> xx.xxx.EntityBase" >>>> >>>> What can I do to get all the objects including those with Type == >>>> null ? >>>> >>>> >>>> Cordially, >>>> Kakone. >>>> >>>> -- >>>> 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]<nhusers%[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]<nhusers%[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]<nhusers%[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]<nhusers%[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.
