LINQ での CASE ステートメントの使用
LINQ (C#) では、CASE ステートメントのようなロジックを使用して、特定の条件に基づいて条件付きの値の割り当てを実行できます。
次のコード スニペットは、CASE ステートメントを使用して、osc_products
テーブルの products_quantity
属性に値を割り当てる方法を示しています。割り当てルールは次のとおりです:
itempromoflag
が「N」と等しくない場合は、products_quantity
を 100,000 に設定します。 itemcat1
が「1」、「2」、または「31」に等しく、itemsalestatus
が「S」に等しい場合、products_quantity
を 100,000 に設定します。 itemsalestatus
が「O」に等しい場合、products_quantity
を 0 に設定します。 products_quantity
を itemqtyonhand
から itemqtycommitted
を引いた結果に設定します。 この CASE ステートメントを LINQ で実装するには、select
句で条件式を使用できます。例は次のとおりです:
<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>
この LINQ クエリは、CASE ステートメントと products_quantity
の代入を select
句内の 1 つの式に結合することでコードを簡素化していることに注意してください。
以上が条件付き値の割り当てのために LINQ に CASE ステートメント ロジックを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。