Create a property mapping on that case expression and use it for sorting. Example: <property name="WeirdSortingProperty" formula="case orderCol ..." />
Diego On Fri, Apr 2, 2010 at 12:47, OwenD <[email protected]> wrote: > Apologies for any errors in this question - I'm somewhat new to > NHibernate, LINQ and C#. > > The essential situation is that I have a table "blah" that is mapped > to a Blah domain object by NHibernate (I've just made up the table > name etc. here). I want to perform a paginated search on the "blah" > table, and provide a custom ordering on one of its fields - i.e. the > SQL that I eventually want to be executed is something like: > > select top 10 * from blah > where <search_criteria> > order by > case orderCol > when 0 then 1 > when 1 then 0 > when 2 then 3 > when 3 then 2 > else 4 > end > > (in this example the ordering is something completely artificial). > > The C# code I'm executing is something like: > > ISession.Linq<Blah>().Where(<search_criteria>).OrderBy(x => > x.OrderCol, new CustomComparer()) > > where the CustomComparer() class implements my custom ordering > behaviour. However, when I monitor the SQL that NHibernate generates, > I just see something like: > > select top 10 * from blah > where <search_criteria> > order by orderCol asc > > (i.e my Comparer appears to be ignored - perhaps not too surprising). > My question is whether a custom ordering like this is even possible > using NHibernate? > > -- > 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.
