Linq commande par total dans le select { }
Ici est celui que je suis en train de travailler sur:
var fStep =
from insp in sq.Inspections
where insp.TestTimeStamp > dStartTime && insp.TestTimeStamp < dEndTime
&& insp.Model == "EP" && insp.TestResults != "P"
group insp by new { insp.TestResults, insp.FailStep } into grp
select new
{
FailedCount = (grp.Key.TestResults == "F" ? grp.Count() : 0),
CancelCount = (grp.Key.TestResults == "C" ? grp.Count() : 0),
grp.Key.TestResults,
grp.Key.FailStep,
PercentFailed = Convert.ToDecimal(1.0 * grp.Count() /tcount*100)
} ;
Je voudrais orderby un ou plusieurs champs dans la sélection de projection.
OriginalL'auteur Joe Pitz | 2010-03-31
Vous devez vous connecter pour publier un commentaire.
Le plus simple, le changement est probablement d'utiliser une requête de continuation:
Qui est essentiellement équivalent à l'utilisation de "laisser", pour être honnête, la vraie différence est que laisser introduit un nouveau variable de portée, alors qu'une requête de continuation efficacement commence une nouvelle étendue de la gamme de variables, vous ne pouviez pas référence à
grp
au sein du peu aprèsinto selection
par exemple.Il est intéressant de noter que c'est exactement même que l'utilisation de deux états:
c'est très bien. bon travail, jon
OriginalL'auteur
envelopper la totalité de la requête entre parenthèses et
OrderBy
devrait êtreThenBy
.merci de montrer l'exemple
Très simple. Merci David.
OriginalL'auteur
Vous pouvez déplacer l'sélectionner une valeur à une cession et ensuite établir un ordre par la suite.
déposer les
new ...
et de le remplacer avecorderby newInsp.FailedCount, newInsp.CancelCount
Merci Thomas... Jamais essayé de l'exécuter (seulement eu un moqué de modèle de données pour s'assurer au moins de la compilation.)
OriginalL'auteur