Linq Bestellung, indem nicht funktioniert

8

Die Linq-Abfrage "order by" funktioniert nicht und ich habe alle Vorschläge auf Ihrer Website und anderen Websites befolgt. Jede Hilfe wäre willkommen.

%Vor%

Danke für Ihre Eingabe!

Ja, dies ist eine WebGet-Methode für einen WCF-Datendienst. Ich erhalte einen Fehler von 400, wenn ich keinen IQueryable-Typ zurückgebe, also habe ich Ihren Vorschlag etwas modifiziert. Leider scheint es immer noch keine Reihenfolge zu ignorieren.

%Vor%     
user680891 23.06.2011, 19:14
quelle

3 Antworten

19

Ich bemerke, dass Sie ein IQueryable<T> zurückgeben - rufen Sie irgendwelche LINQ-Methoden für das Ergebnis auf, bevor Sie es aufzählen?

Nicht alle LINQ-Methoden erhalten die Reihenfolge . Wenn Sie Distinct() nach aufrufen, wird die Reihenfolge meist zerstört.

    
quelle
1

Da Ihre Methode mit einem WebGet-Attribut markiert ist, nehme ich an, dass Sie diese Methode von einem Web-Endpunkt aus aufrufen. Daher müssen Sie die Sammlung möglicherweise vor dem Senden über das Internet reduzieren.

Versuchen Sie:

%Vor%

Auf diese Weise haben Sie die Garantie, dass die GetChargeProviders-Methode anstelle eines linq-Ausdrucks ein Array zurückgibt.

Grüße,

    
wacdany 24.06.2011 23:06
quelle
1

Ich habe die Ursache des Problems gefunden.

Ich habe die Spalte "fullname" nicht als Entitätsschlüssel für die Datenmodelleinheit "vw_providercharge_providers" festgelegt. Nur die Identitätsspalte wurde als Entitätsschlüssel festgelegt. Ich wusste nicht, dass es eine Voraussetzung war, sie in einer Order-by-Klausel zu verwenden.

Nochmals vielen Dank für Ihre Eingabe.

    
user680891 28.06.2011 16:02
quelle

Tags und Links