Was ist das äquivalent der "FALL DANN, WENN" (T-SQL) mit Entity Framework?
Ich habe eine Transact-SQl-Anfrage, die ich benutze eine Menge und ich will das äquivalent mit Entity Framework. Aber ich weiß nicht, wie man eine "FALLE WENN" - Aussage mit EF. Hier ist eine vereinfachte code meiner Anfrage :
SELECT Code,
SUM(CASE WHEN Month=1 THEN Days Else 0 END) AS Jan,
FROM MyTable
GROUP BY Code
Können Sie mir sagen, ob es möglich ist und wie dies mit den EF ?
InformationsquelleAutor Alex | 2013-12-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
In diesem Fall, würde ich sagen, die bedingte operator (
p ? x : y
) ist ein guter Ersatz.Oder kombinieren Sie eine
Where
und einSum
:Ich bin mir nicht sicher, was SQL diese übersetzen zu genau, aber Sie sollten beide das gleiche Ergebnis.
InformationsquelleAutor Tim S.
wie nachfolgend veranschaulicht, wird die linq-äquivalent von transact sql FALL, WENN DANN ist der bedingte operator
?:
:übersetzt
imho ist die Frage: Was ist das äquivalent der "FALL DANN, WENN" (T-SQL) mit Entity Framework?
fair genug. Könnten Sie tun, eine sinnlose Bearbeiten, so kann ich meine Abstimmung rückgängig machen?
InformationsquelleAutor tschmit007
Einen Weg, dies zu erreichen, verwenden Sie einfach .ThenBy.
Zum Beispiel, wenn die Abfrage sieht wie folgt aus, wo Sie wollen die 3 möglichen Werte bestellte zuerst (in der Reihenfolge der bei der Fall ist), die die Einträge der Tabelle werden die bestellten MANAGER, ADMIN, SUPPORT, und alle anderen Typen:
Den Gegenwert linq wäre dann:
InformationsquelleAutor Reuben Wilson