Gibt es eine Möglichkeit, eine top (Take) linq-Abfrage mit Prozentsatz durchzuführen? Der T-SQL wäre gewesen:LINQ-Version von TOP PERCENT
SELECT TOP 20 PERCENT ...
Aber LINQ scheint nur int. Zu wollen.
Es scheint, dass ich eine Zählung und dann eine Aufnahme machen müsste. Irgendwelche Vorschläge?
Das ist, was ich tue, und ich mag es nicht:/Es sollte eine Methode geben, die in das native SQL übersetzt. –
@Basallo: Leider glaube ich nicht, dass es da ist. Sie könnten die IQueryable-Implementierung irgendwie erweitern, um Ihr eigenes Override von Top zu unterstützen, das es dann in den entsprechenden SQL Server-Befehl übersetzen würde. – casperOne
@tony: Eine Anmerkung, obwohl es 2 Reisen ist, ist es nicht so schlimm, wie es scheinen mag. query.Count() wird als SELECT COUNT() ausgeführt, so dass zumindest nicht alle Zeilen zurückgegeben, gezählt und dann alle erneut ausgewählt werden. Wie die anderen sagen, wären gespeicherte Procs und Views eine andere Möglichkeit, dies zu tun ... – Daniel