J'ai une table comme ça ...LINQ - Valeur de retour Du champ avec un maximum de valeur si aucune ligne trouvée
ID Description LowThreshold HighThreshold
1 BAD 0.0 .69
2 MEETS .70 .89
3 GOOD .90 2
L'objet est ici pour écrire une requête LINQ qui sélectionnera le droit Description basée sur une décimale donnée. Par exemple .75 est entre .70 et .89, donc il retournerait "MEETS". MAIS, le kicker est, si le nombre est supérieur à toutes les plages, retourner automatiquement la description de l'enregistrement avec le plus élevé HighThreshold. Donc, si je passe à 5, je devrais obtenir "BON" retourné.
J'ai ce jusqu'à présent, mais il des erreurs sur les scores plus élevés que 2, évidemment:
private string GetEvaluationDescription (decimal score)
{
string evaluationText = myContext.PerformanceRanges.Where
(e =>
e.LowThreshold <= score
&&
e.HighThreshold >= score
)
.Select(eval => eval.Description).First().ToString();
}
Je voudrais accomplir ceci avec juste cette requête, mais mon imagination ne me reçois Là. Je tentais ce que je trouvais dans this après mais n'a pas pu le faire fonctionner