Maison >développement back-end >C++ >Comment implémenter une instruction SQL CASE dans LINQ en utilisant C# ?

Comment implémenter une instruction SQL CASE dans LINQ en utilisant C# ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-27 22:42:10136parcourir

How to Implement a SQL CASE Statement in LINQ using C#?

Implémentation de l'instruction LINQ CASE pour des conditions complexes

Une instruction CASE est un outil puissant pour évaluer plusieurs conditions et renvoyer des résultats spécifiques en fonction de chaque cas. . Cet article vise à fournir une explication claire et une solution pour implémenter les instructions CASE dans LINQ pour C#.

Dans un scénario spécifique, une requête cherche à mettre à jour l'état du stock en fonction d'un ensemble de conditions :

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 traduire cette instruction CASE en LINQ, nous pouvons utiliser la syntaxe suivante :

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);

Cette expression LINQ utilise des opérateurs ternaires pour émuler les conditions de l'instruction CASE et définissez les valeurs correspondantes sur la propriété Products_Quantity. Le résultat est une requête qui met à jour l'état du stock en fonction des conditions spécifiées.

Notez que l'extrait de code fourni suppose que vous avez déjà établi une requête LINQ à l'aide d'une source de données appropriée. La variable de requête dans le code doit représenter la requête LINQ que vous avez créée.

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!

Déclaration:
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