Sorting a collection on 2 fields (1 is easy)

Posts   
 
    
like2175
User
Posts: 83
Joined: 27-Mar-2006
# Posted on: 05-Apr-2007 13:43:32   

I have filled a collection using

paramColl = _rep.GetMultiAppParam(False, Nothing, Nothing)

I now need to sort by 2 attributes: DisplayOrder, then ParamName

I can do this:

        Dim sorter1 As New SortExpression
        sorter1.Add(SortClauseFactory.Create(AppParamFieldIndex.DisplayOrder, SD.LLBLGen.Pro.ORMSupportClasses.SortOperator.Ascending))
         sorter1.Add(SortClauseFactory.Create(AppParamFieldIndex.ParamName, SD.LLBLGen.Pro.ORMSupportClasses.SortOperator.Ascending))

And:

.Sort(AppParamFieldIndex.DisplayOrder, ComponentModel.ListSortDirection.Ascending)

allows me to sort by 1 field. Can anyone help me sort my collection by 2 fields?

LLBLGen v 1.0.2005.1 ASP.NET v2.0 Oracle DB.

Walaa avatar
Walaa
Support Team
Posts: 14950
Joined: 21-Aug-2005
# Posted on: 05-Apr-2007 15:52:43   

To sort os the database side when you fetch a collection, you should supply a sort expression to the fetch method.

 Dim sorter1 As New SortExpression
        sorter1.Add(SortClauseFactory.Create(AppParamFieldIndex.DisplayOrder, SD.LLBLGen.Pro.ORMSupportClasses.SortOperator.Ascending))
         sorter1.Add(SortClauseFactory.Create(AppParamFieldIndex.ParamName, SD.LLBLGen.Pro.ORMSupportClasses.SortOperator.Ascending))

To sort a collection at the client side (after it has been fetched), you should use the sort method which sorts on only one field

.Sort(AppParamFieldIndex.DisplayOrder, ComponentModel.ListSortDirection.Ascending)

This has changed in v.2.0 where you can use an EntityView to sort a collection on multiple fields at client side.