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

条件付き製品数量割り当てのために、LINQ に相当する SQL CASE ステートメントを実装するにはどうすればよいですか?

Linda Hamilton
リリース: 2025-01-11 19:22:42
オリジナル
888 人が閲覧しました

How to Implement a SQL CASE Statement Equivalent in LINQ for Conditional Product Quantity Assignment?

動的な製品数量割り当てのための LINQ での SQL CASE ステートメントのレプリケート

この記事では、SQL CASE ステートメントの機能を LINQ に変換する方法を示し、特に、さまざまな基準に基づいて製品数量を条件付きで割り当てるという課題に対処します。 このロジックを組み込むために既存のコードを変更します。

最初の計算:

<code class="language-csharp">cds_oeinvitem.itemqtyonhand - cds_oeinvitem.itemqtycommitted</code>
ログイン後にコピー

この単純な減算により、手持在庫から確定数量を差し引くことで、利用可能な在庫が決定されます。

LINQ で同等の SQL CASE ステートメントは、ネストされた三項演算子を使用します。

<code class="language-csharp">osc_products.products_quantity =
    itempromoflag != "N" ? 100000 :
    (
        itemcat1.In("1", "2", "31") && itemsalestatus == "S" ? 100000 :
        itemsalestatus == "O" ? 0 :
        cds_oeinvitem.itemqtyonhand - cds_oeinvitem.itemqtycommitted
    )</code>
ログイン後にコピー

このネストされた構造は、CASE ステートメントの条件ロジックを反映しています。 条件を優先します。itempromoflag が "N" でない場合、数量は 100000 です。それ以外の場合は、次の条件に進みます。

統合された LINQ クエリ:

<code class="language-csharp">cdsDBDataContext db = new cdsDBDataContext();
var query = from items in db.cdsItems
            where items.ItemHandHeldFlag == "Y" &&
                  (
                      items.Itempromoflag != "N" ? 100000 :
                      (
                          items.Itemcat1.In("1", "2", "31") && items.Itemsalestatus == "S" ? 100000 :
                          items.Itemsalestatus == "O" ? 0 :
                          items.Itemqtyonhand - items.Itemqtycommitted
                      )
                  ) > 0
            select items;</code>
ログイン後にコピー

この改訂されたクエリには条件付き数量割り当てが組み込まれており、定義された基準に基づいて在庫状況が正確に更新されることが保証されます。 ItemHandHeldFlag 条件を満たし、結果の数量が 0 より大きい品目のみが選択されます。 これにより、LINQ フレームワーク内の SQL CASE ステートメントの動作が効果的に複製されます。

以上が条件付き製品数量割り当てのために、LINQ に相当する SQL CASE ステートメントを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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