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 :
itempromoflag
n'est pas égal à 'N', alors définissez products_quantity
sur 100 000. itemcat1
est égal à « 1 », « 2 » ou « 31 » et itemsalestatus
est égal à « S », alors définissez products_quantity
sur 100 000. itemsalestatus
est égal à « O », alors définissez products_quantity
sur 0. 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!