Linq-Order By funktioniert nicht
Die Linq-Abfrage "order by" funktioniert nicht und ich habe alle Folgen die Vorschläge, die auf Ihrer Website und anderen Websites. Jede Hilfe würde geschätzt werden.
[WebGet]
public IQueryable<vw_providercharge_providers> GetChargeProviders(int submitted)
{
var results = (from p in this.CurrentDataSource.vw_providercharge_providers
where p.submitted == submitted
orderby p.fullname
select p);
return results;
}
Vielen Dank für Ihre Eingabe!
Ja, das ist ein WebGet Methode für einen WCF data service. Ich bekomme einen 400-Fehler, wenn ich nicht wieder ein IQueryable-Typ, so dass ich geändert, dein Vorschlag ein wenig. Leider scheint es immer noch zu ignorieren beliebiger Reihenfolge-durch.
[WebGet]
public IQueryable<vw_providercharge_providers> GetChargeProviders(int submitted)
{
var results = (from p in this.CurrentDataSource.vw_providercharge_providers
where p.submitted == submitted
orderby p.fullname
select p).ToArray();
results.OrderBy(p => p.patientname);
return results;
}
- Was meinst du mit "funktioniert nicht?" Was erwarten Sie es tun, und was tut Sie?
- Erklären Sie bitte, was meinen Sie mit "funktioniert nicht".
- Was unerwartet ist, über die Ergebnisse, die Sie bekommen? Versuchen .OrderBy(p=>p.fullname);
- Sie verwenden sollten, IOrderedQueryable als Rückgabetyp
- Sie verlieren den Rückgabewert der Bestellung, sollten Sie
return results.OrderBy(p => p.patientname);
und dann werden Sie ändern müssen de von der Funktion zurückgegebene Wert
Du musst angemeldet sein, um einen Kommentar abzugeben.
Merke ich Sie wieder ein
IQueryable<T>
- rufen Sie alle LINQ-Methoden auf das Ergebnis, bevor Sie aufzählen?Nicht alle LINQ-Methoden erhalten bestellen. Am häufigsten aufrufen
Distinct()
nach Sie die Reihenfolge zerstört die Ordnung.Da Ihre Methode ist eine Kennzeichnung mit einem WebGet Attribut, nehme ich an, dass Sie den Aufruf dieser Methode aus einem Web-Endpunkt, daher müssen Sie möglicherweise zum Zusammenbruch der Sammlung vor, um es zu senden durch das internet.
Versuchen:
Diese Weise haben Sie die Garantie, dass die GetChargeProviders Methode gibt und array statt einem linq-Ausdruck.
Grüße,
Fand ich die Ursache des Problems.
Hatte ich nicht den "fullname" - Spalte als eine Einheit-Taste für die "vw_providercharge_providers" Datenmodell Entität. Nur die identity-Spalte eingestellt wurde und als eine Einheit Schlüssel. Ich wusste gar nicht, dass eine Voraussetzung war, um es in einer order by-Klausel.
Nochmals vielen Dank für Ihre Eingabe.