ホームページ > データベース > mysql チュートリアル > 条件付き値の割り当てのために LINQ に CASE ステートメント ロジックを実装するにはどうすればよいですか?

条件付き値の割り当てのために LINQ に CASE ステートメント ロジックを実装するにはどうすればよいですか?

Patricia Arquette
リリース: 2025-01-11 19:17:42
オリジナル
741 人が閲覧しました

How Can I Implement CASE Statement Logic in LINQ for Conditional Value Assignment?

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート