Heim >Datenbank >MySQL-Tutorial >Wie kann ich die CASE-Anweisungslogik in LINQ für die bedingte Wertzuweisung implementieren?
Verwendung der CASE-Anweisung in LINQ
LINQ (C#) ermöglicht die Verwendung von CASE-Anweisungslogik, um bedingte Wertzuweisungen basierend auf bestimmten Bedingungen durchzuführen.
Der folgende Codeausschnitt zeigt, wie Sie mit der CASE-Anweisung dem Attribut osc_products
in der Tabelle products_quantity
einen Wert zuweisen. Die Zuweisungsregeln lauten wie folgt:
itempromoflag
nicht gleich „N“ ist, dann setzen Sie products_quantity
auf 100.000. itemcat1
gleich „1“, „2“ oder „31“ ist und itemsalestatus
gleich „S“, dann setzen Sie products_quantity
auf 100.000. itemsalestatus
gleich „O“ ist, setzen Sie products_quantity
auf 0. products_quantity
auf das Ergebnis von itemqtyonhand
minus itemqtycommitted
. Um diese CASE-Anweisung in LINQ zu implementieren, können Sie einen bedingten Ausdruck in der select
-Klausel verwenden. Ein Beispiel ist wie folgt:
<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>
Beachten Sie, dass diese LINQ-Abfrage den Code vereinfacht, indem sie die CASE-Anweisung und die Zuweisung von products_quantity
in einem einzigen Ausdruck in der select
-Klausel kombiniert.
Das obige ist der detaillierte Inhalt vonWie kann ich die CASE-Anweisungslogik in LINQ für die bedingte Wertzuweisung implementieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!