Maison > développement back-end > C++ > Comment l'opérateur ternaire de LINQ peut-il répliquer l'instruction CASE de SQL pour les mises à jour de quantités conditionnelles ?

Comment l'opérateur ternaire de LINQ peut-il répliquer l'instruction CASE de SQL pour les mises à jour de quantités conditionnelles ?

Mary-Kate Olsen
Libérer: 2025-01-03 16:48:43
original
460 Les gens l'ont consulté

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

Instructions Case dans LINQ : un exemple pratique

Les puissantes instructions CASE de LINQ fournissent une syntaxe concise pour les évaluations conditionnelles dans les requêtes. Considérez l'exigence suivante pour mettre à jour l'état du stock dans 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  
Copier après la connexion

Dans LINQ, cette instruction CASE peut être écrite comme suit :

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
              };
Copier après la connexion

Cette requête évalue efficacement les conditions de l'instruction CASE et attribue la valeur appropriée à la propriété Quantity du type anonyme.

N'oubliez pas que l'instruction LINQ globale gère des critères supplémentaires tels que ItemHandHeldFlag et conditions de disponibilité.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal