Heim >Backend-Entwicklung >C++ >Wie kann der ternäre Operator von LINQ die CASE-Anweisung von SQL für bedingte Mengenaktualisierungen replizieren?

Wie kann der ternäre Operator von LINQ die CASE-Anweisung von SQL für bedingte Mengenaktualisierungen replizieren?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2025-01-03 16:48:43435Durchsuche

How Can LINQ's Ternary Operator Replicate SQL's CASE Statement for Conditional Quantity Updates?

Case-Anweisungen in LINQ: Ein praktisches Beispiel

Die leistungsstarken CASE-Anweisungen von LINQ bieten eine prägnante Syntax für bedingte Auswertungen innerhalb von Abfragen. Berücksichtigen Sie die folgende Anforderung für die Aktualisierung des Lagerbestandsstatus in LINQ:

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  

In LINQ kann diese CASE-Anweisung wie folgt geschrieben werden:

var query = from items in db.cdsItems
              where items.ItemHandHeldFlag.Equals("Y") &
              items.ItemQtyOnHand - items.ItemQtyCommitted > 0
              select new
              {
                  Quantity = items.ItemPromoflag != "N" ? 100000 :
                              items.Itemcat1 == "1" || items.Itemcat1 == "2" || items.Itemcat1 == "31" && items.Itemsalestatus == "S" ? 100000 :
                              items.Itemsalestatus == "O" ? 0 : items.Itemqtyonhand - items.Itemqtycommitted
              };

Diese Abfrage wertet effektiv die Bedingungen und die Bedingungen der CASE-Anweisung aus weist der Quantity-Eigenschaft des anonymen Typs den entsprechenden Wert zu.

Denken Sie daran, dass die gesamte LINQ-Anweisung zusätzliche Kriterien verarbeitet, wie z ItemHandHeldFlag und Verfügbarkeitsbedingungen.

Das obige ist der detaillierte Inhalt vonWie kann der ternäre Operator von LINQ die CASE-Anweisung von SQL für bedingte Mengenaktualisierungen replizieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn