複雑な条件に対する LINQ CASE ステートメントの実装
CASE ステートメントは、複数の条件を評価し、それぞれのケースに基づいて特定の結果を返す強力なツールです。 。この記事は、LINQ for C# で CASE ステートメントを実装するための明確な説明と解決策を提供することを目的としています。
ある特定のシナリオでは、クエリは一連の条件に基づいて在庫ステータスを更新しようとします。
osc_products.products_quantity = CASE WHEN itempromoflag <> 'N' THEN 100000 WHEN itemcat1 IN ('1','2','31') AND itemsalestatus = 'S' THEN 100000 WHEN itemsalestatus = 'O' THEN 0 ELSE cds_oeinvitem.itemqtyonhand - cds_oeinvitem.itemqtycommitted END
この CASE ステートメントを LINQ に変換するには、次の構文を使用できます。
query.Select(item => item.Products_Quantity = item.ItemPromoFlag != 'N' ? 100000 : (item.ItemCat1 == "1" || item.ItemCat1 == "2" || item.ItemCat1 == "31") && item.ItemSaleStatus == "S" ? 100000 : item.ItemSaleStatus == "O" ? 0 : cds_oeinvitem.ItemQtyOnHand - cds_oeinvitem.ItemQtyCommitted);
この LINQ 式三項演算子を使用して CASE ステートメントの条件をエミュレートし、対応する値を Products_Quantity プロパティに設定します。結果は、指定された条件に基づいて在庫状況を更新するクエリです。
提供されたコード スニペットは、適切なデータ ソースを使用して LINQ クエリがすでに確立されていることを前提としていることに注意してください。コード内のクエリ変数は、作成した LINQ クエリを表す必要があります。
以上がC# を使用して LINQ で SQL CASE ステートメントを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。