web-dev-qa-db-ja.com

少なくとも1つのオブジェクトがIComparableを実装する必要があります

var listair = empcon.OrderBy(x => x.CustomerConnection.OrderBy(y => y.Id)).ToList();

このステートメントを使用すると、「少なくとも1つのオブジェクトがIComparableを実装する必要があります」という例外が発生します。

どうすればこの問題を解決できますか?

19
Amit

間違って書いたときに、クエリでこの問題が発生しました。

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

これは、親ユニットと子ユニットが両方ともOrgUnitオブジェクトであり、このOrgRelationエンティティに関連しているためです。必要なのは、オブジェクトではなく、本当に並べ替えたいオブジェクトのプロパティで並べ替えることでした。 「.Name」を追加すると機能しました。

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

CustomerConnectionとempconに含まれるオブジェクトのタイプにIComparableを実装します。 IComparableが実装されていない場合、byによる注文を実行する方法はありません。

8
Jeff Machamer