Quel est l'équivalent de “CAS LORSQU'” (T-SQL) avec Entity Framework?
J'ai une instruction Transact-SQl de la requête que j'utilise beaucoup et je veux obtenir l'équivalent avec Entity Framework. Mais je ne sais pas comment faire un "CAS LORS de la" déclaration avec EF. Voici un code simplifié de ma demande :
SELECT Code,
SUM(CASE WHEN Month=1 THEN Days Else 0 END) AS Jan,
FROM MyTable
GROUP BY Code
Pouvez-vous me dire si c'est possible et comment le faire avec EF ?
OriginalL'auteur Alex | 2013-12-10
Vous devez vous connecter pour publier un commentaire.
Dans ce cas, je dirais que le opérateur conditionnel (
p ? x : y
) est un bon substitut.Ou de combiner un
Where
et unSum
:Je ne suis pas sûr de ce que SQL ceux-ci se traduisent exactement, mais ils doivent tous avoir le même résultat.
OriginalL'auteur Tim S.
comme illustré par la suite, le linq équivalent de transact sql CAS LORSQUE est ALORS l'opérateur conditionnel
?:
:est traduit comme
à mon humble avis, la question est: Quel est l'équivalent de “CAS LORSQU'” (T-SQL) avec Entity Framework?
juste assez. Pourriez-vous faire un sens modifier si je peux annuler mon vote?
OriginalL'auteur tschmit007
Une façon d'y parvenir est d'utiliser simplement .ThenBy.
Par exemple, si la requête ressemble à cela, vous voulez que les 3 valeurs possibles commandé les premiers (dans l'ordre des cas), les enregistrements de la table seront commandés par le MANAGER, ADMIN, le SOUTIEN, et tous les autres types:
L'équivalent de linq serait alors:
OriginalL'auteur Reuben Wilson