
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 サイトの他の関連記事を参照してください。