Existe-t-il un moyen d'effectuer une requête linq supérieure (Take) en utilisant le pourcentage? Le T-SQL aurait été:Version LINQ de TOP PERCENT
SELECT TOP 20 PERCENT ...
Mais LINQ semble vouloir seulement un int.
Il semble que je devrais faire un compte puis une prise. Aucune suggestion?
C'est ce que je fais, et je ne l'aime pas:/Il devrait y avoir une méthode qui se traduit par le SQL natif. –
@Basallo: Malheureusement, je ne crois pas qu'il y a. Vous pourriez^étendre^l'implémentation IQueryable d'une manière ou d'une autre pour prendre en charge votre propre remplacement de Top, ce qui le traduirait ensuite vers la commande SQL Server appropriée. – casperOne
@tony: Une note, même si c'est 2 voyages, ce n'est pas aussi grave que cela puisse paraître. query.Count() est exécuté en tant que SELECT COUNT(), donc au moins il ne retourne pas toutes les lignes, en comptant, puis en sélectionnant tout à nouveau. Comme les autres états, les procs et les vues stockées seraient une autre façon de faire ceci ... – Daniel