Maison >développement back-end >C++ >Comment puis-je répliquer des instructions SQL CASE à l'aide de 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
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);
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!