2011-06-24 95 views
19
var listair = empcon.OrderBy(x => x.CustomerConnection.OrderBy(y => y.Id)).ToList(); 

Cuando utilizo esta declaración entonces yo estoy haciendo una excepción "Al menos un objeto debe implementar IComparable"Al menos un objeto debe implementar IComparable

¿Cómo puedo solucionar este problema?

+1

Bueno, el código que ha publicado no es suficiente. ¿Qué es empcon? ¿Qué es CustomerConnection? Debes proporcionar más detalles. –

Respuesta

8

Implemente IComparable para los Tipos de los objetos contenidos por CustomerConnection y empcon. Si no tienen implementado IComparable, entonces no hay forma de realizar un pedido por.

26

he tenido este problema con mi consulta cuando lo escribí mal:

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

Esto era debido a que las unidades de padres e hijos son ambos objetos OrgUnit la están relacionados con esta entidad OrgRelation. Lo que necesitaba era ordenar no por el objeto, sino por la propiedad del objeto sobre el que realmente quería ordenar. Cuando agregué el ".Name" funcionó.

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

sí porque al usar el Nombre esto es una cadena e IComparable ya está implementado en cadenas. – juFo

Cuestiones relacionadas