Maison > développement back-end > C++ > Comment puis-je répliquer des instructions SQL CASE à l'aide de LINQ ?

Comment puis-je répliquer des instructions SQL CASE à l'aide de LINQ ?

Susan Sarandon
Libérer: 2024-12-29 03:50:13
original
442 Les gens l'ont consulté

How Can I Replicate SQL CASE Statements Using LINQ?

Implémentation LINQ des instructions CASE

Dans LINQ, vous pouvez utiliser des instructions conditionnelles pour simuler la fonctionnalité des instructions CASE trouvées dans SQL. Examinons un exemple spécifique :

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

Pour convertir cette instruction CASE en LINQ, vous pouvez utiliser l'approche suivante :

// Linq syntax
var query = from items in db.cdsItems
            where items.ItemHandHeldFlag.Equals("Y") && 
            items.ItemQtyOnHand - items.ItemQtyCommitted > 0
            select items;

// Alternate lambda syntax with expression body
var query2 = db.cdsItems
    .Where(items => items.ItemHandHeldFlag.Equals("Y") && 
            (items.ItemQtyOnHand - items.ItemQtyCommitted > 0))
    .Select(items => items);
Copier après la connexion

Cette requête simule efficacement le comportement de l'instruction CASE et met à jour le état du stock depuis la production jusqu'au site de commerce comme prévu.

Notez que LINQ fournit un moyen plus concis et maintenable de gérer les instructions conditionnelles par rapport à l'utilisation de CASE. instructions en SQL. Il vous permet d'utiliser une seule instruction pour évaluer plusieurs conditions et produire le résultat souhaité.

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