LINQ の Case ステートメント: 実践的な例
LINQ の強力な CASE ステートメントは、クエリ内の条件評価のための簡潔な構文を提供します。 LINQ で在庫ステータスを更新するための次の要件を考慮してください。
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
LINQ では、この CASE ステートメントは次のように記述できます。
var query = from items in db.cdsItems where items.ItemHandHeldFlag.Equals("Y") & items.ItemQtyOnHand - items.ItemQtyCommitted > 0 select new { Quantity = 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 };
このクエリは CASE ステートメントの条件を効果的に評価し、匿名型の Quantity プロパティに適切な値を割り当てます。
LINQ ステートメント全体では、次のような追加の基準を処理することに注意してください。 ItemHandHeldFlag と利用可能条件。
以上がLINQ の三項演算子は、条件付き数量更新のために SQL の CASE ステートメントをどのように複製できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。