No, that just sets join fetching. Left.JoinQueryOver changes the criteria "context" to an association, like CreateCriteria.
Diego On Thu, Jun 24, 2010 at 17:52, Mohamed Meligy <[email protected]> wrote: > 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.Type doesn'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]<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.
