Maison >base de données >tutoriel mysql >Comment puis-je implémenter la logique d'instruction CASE dans LINQ pour l'attribution de valeur conditionnelle ?

Comment puis-je implémenter la logique d'instruction CASE dans LINQ pour l'attribution de valeur conditionnelle ?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-11 19:17:42742parcourir

How Can I Implement CASE Statement Logic in LINQ for Conditional Value Assignment?

Utilisation de l'instruction CASE dans LINQ

LINQ (C#) permet d'utiliser une logique de type instruction CASE pour effectuer des attributions de valeurs conditionnelles basées sur des conditions spécifiques.

L'extrait de code suivant montre comment utiliser l'instruction CASE pour attribuer une valeur à l'attribut osc_products dans la table products_quantity. Les règles d'attribution sont les suivantes :

  • Si itempromoflag n'est pas égal à 'N', alors définissez products_quantity sur 100 000.
  • Si itemcat1 est égal à « 1 », « 2 » ou « 31 » et itemsalestatus est égal à « S », alors définissez products_quantity sur 100 000.
  • Si itemsalestatus est égal à « O », alors définissez products_quantity sur 0.
  • Sinon, réglez products_quantity sur le résultat de itemqtyonhand moins itemqtycommitted.

Pour implémenter cette instruction CASE dans LINQ, vous pouvez utiliser une expression conditionnelle dans la clause select. Un exemple est le suivant :

<code class="language-csharp">cdsDBDataContext db = new cdsDBDataContext();
var query = from items in db.cdsItems
            where items.ItemHandHeldFlag == "Y" &&
                  items.ItemQtyOnHand - items.ItemQtyCommitted > 0
            select new
            {
                ItemID = items.ItemID,
                ProductsQuantity = (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
            };</code>

Notez que cette requête LINQ simplifie le code en combinant l'instruction CASE et l'affectation de products_quantity en une seule expression dans la clause select.

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