Ruft Ausnahmen ab "" Mindestens ein Objekt muss icomparable "" nur implementieren, wenn die Methode ToList () auf IQueryable angewendet wird

8

Wenn ich die Methode ToList () nicht zur Abfrage von firsQue verwende, ist alles "Ok!" aber ich muss firsQue sofort ausführen! Dann habe ich an die Ende ToList () -Methode hinzugefügt und bekam eine Ausnahme in der zweiten Abfrage secQue "mindestens ein Objekt muss IComparable implementieren".

Ich verstehe nicht, dass es verursacht, Gruppierung führt durch g.Action.ActionType.Name ... Es ist String, String-Typ implementiert IComparer-Schnittstelle

%Vor%

}

    
Ark 08.01.2014, 20:04
quelle

3 Antworten

20

Das Problem ist hier:

%Vor%

Der Compiler kann Ihre Werte nicht vergleichen und die Reihenfolge nicht ausführen. Ihr Typ muss IComparable implementieren (obwohl es ein anonymer Typ ist) oder Sie können die Sortierung nach einer Eigenschaft vornehmen:

%Vor%     
Selman Genç 08.01.2014, 20:08
quelle
2

Sie rufen OrderBy auf, aber Ihr Ausdruck s => s liefert nur den anonymen Typ, der oben in select new erstellt wurde. Anonyme Typen sind nicht vergleichbar, Sie können also nicht nach ihnen sortieren. Vielleicht meinst du .OrderBy(s => s.Name) ?

    
Michael Gunter 08.01.2014 20:07
quelle
0

Wenn Sie OrderBy mit Ihrem Ausdruck wie c => c.someParameter aufrufen und wenn ein Parameter der Referenzparameter einer anderen Tabelle ist, erhalten Sie denselben Fehler wie zB.

%Vor%

Im obigen Beispiel sind alle Bestellungen eine Sammlung von Bestellungen und ich möchte sie dann auf Filiale sortieren. Die Verzweigung ist jedoch die Referenzspalte der Verzweigungstabelle. Also habe ich Fehler bekommen.

Wenn Sie also eine Referenzspalte bestellen, sollten Sie folgendes tun:

%Vor%

oder ein beliebiger Parameter der Verzweigungsspalte wie der Name des Zweigs usw.

    
Prasad Joshi 13.01.2017 10:25
quelle

Tags und Links