Heim >Backend-Entwicklung >C++ >Wie implementiert man eine SQL-CASE-Anweisung in LINQ mit C#?
LINQ CASE-Anweisungsimplementierung für komplexe Bedingungen
Eine CASE-Anweisung ist ein leistungsstarkes Tool zum Auswerten mehrerer Bedingungen und zum Zurückgeben spezifischer Ergebnisse für jeden Fall . Ziel dieses Artikels ist es, eine klare Erklärung und Lösung für die Implementierung von CASE-Anweisungen in LINQ für C# bereitzustellen.
In einem bestimmten Szenario versucht eine Abfrage, den Bestandsstatus basierend auf einer Reihe von Bedingungen zu aktualisieren:
osc_products.products_quantity = CASE WHEN itempromoflag <> 'N' THEN 100000 WHEN itemcat1 IN ('1','2','31') AND itemsalestatus = 'S' THEN 100000 WHEN itemsalestatus = 'O' THEN 0 ELSE cds_oeinvitem.itemqtyonhand - cds_oeinvitem.itemqtycommitted END
Um diese CASE-Anweisung in LINQ zu übersetzen, können wir die folgende Syntax verwenden:
query.Select(item => item.Products_Quantity = item.ItemPromoFlag != 'N' ? 100000 : (item.ItemCat1 == "1" || item.ItemCat1 == "2" || item.ItemCat1 == "31") && item.ItemSaleStatus == "S" ? 100000 : item.ItemSaleStatus == "O" ? 0 : cds_oeinvitem.ItemQtyOnHand - cds_oeinvitem.ItemQtyCommitted);
Dieser LINQ-Ausdruck verwendet ternäre Operatoren, um Emulieren Sie die Bedingungen der CASE-Anweisung und legen Sie die entsprechenden Werte für die Products_Quantity-Eigenschaft fest. Das Ergebnis ist eine Abfrage, die den Bestandsstatus basierend auf den angegebenen Bedingungen aktualisiert.
Beachten Sie, dass das bereitgestellte Code-Snippet davon ausgeht, dass Sie bereits eine LINQ-Abfrage mit einer geeigneten Datenquelle eingerichtet haben. Die Abfragevariable im Code sollte die von Ihnen erstellte LINQ-Abfrage darstellen.
Das obige ist der detaillierte Inhalt vonWie implementiert man eine SQL-CASE-Anweisung in LINQ mit C#?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!