That doesn't work... :-( Diego
On Thu, Jun 24, 2010 at 18:09, Oskar Berggren <[email protected]>wrote: > This compiles, but is untested. No idea if correct or supported in NH. > But based on docs this seems like a starting point. > > var obj = from p in Session.Query<Project>() > join t in Session.Query<Type>() on p.Type equals > t into mygroup > from item in mygroup.DefaultIfEmpty() > orderby item.Label > select o; > > > http://msdn.microsoft.com/en-us/library/bb397895.aspx > http://msdn.microsoft.com/en-us/vbasic/bb737929.aspx#grpjoinleftout > http://msdn.microsoft.com/en-us/library/bb311040.aspx > > > /Oskar > > > 2010/6/24 Diego Mijelshon <[email protected]>: > > 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]<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.
