At least one object must implement IComparable

Amit picture Amit · Jun 24, 2011 · Viewed 23.4k times · Source
var listair = empcon.OrderBy(x => x.CustomerConnection.OrderBy(y => y.Id)).ToList();

When I am using this statement then I am getting exception "At least one object must implement IComparable"

How can I solve this problem?

Answer

Joey Morgan picture Joey Morgan · Nov 11, 2011

I had this problem with my query when I wrote it wrong:

IEnumerable<OrgRelation> relations = from r in tree.OrgRelations
                                                 orderby r.ParentUnit, r.ChildUnit
                                                 select r;

This was because the Parent and Child Units are both OrgUnit objects the are related to this OrgRelation entity. What I needed was to order not by the object, but by the property of the object on which I really wanted to sort. When I added the ".Name" it worked.

IEnumerable<OrgRelation> relations = from r in tree.OrgRelations
                                                 orderby r.ParentUnit.Name, r.ChildUnit.Name
                                                 select r;