집 >데이터 베이스 >MySQL 튜토리얼 >SQL CASE 문을 LINQ 쿼리로 변환하는 방법은 무엇입니까?
LINQ의 CASE 문: 이해 및 구현
LINQ의 CASE 문을 사용하면 개발자가 여러 조건을 평가하고 결과에 따라 특정 값을 할당할 수 있습니다. 일반적으로 데이터 변환 및 조작에 사용됩니다.
복잡한 CASE 문을 LINQ로 변환
원래 질문에 제공된 CASE 문을 살펴보겠습니다.
<code class="language-sql">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 </code>
이 명령문은 다양한 조건에 따라 osc_products 테이블의 products_Quantity 필드에 특정 값을 할당합니다. 이를 LINQ로 변환하려면 다음 구문을 사용할 수 있습니다.
<code class="language-csharp">var productsQuantity = osc_products .Select(x => new { x.products_quantity, ItemPromoFlag = x.itempromoflag != "N", ItemCategory1 = new[] { "1", "2", "31" }.Contains(x.itemcat1), ItemSaleStatus = x.itemsalestatus == "S", AvailableQuantity = x.itemqtyonhand - x.itemqtycommitted }) .Select(x => x.products_quantity = x.ItemPromoFlag ? 100000 : (x.ItemCategory1 && x.ItemSaleStatus) ? 100000 : x.itemsalestatus == "O" ? 0 : x.AvailableQuantity );</code>
LINQ 변환 이해
이 LINQ 문은 기존 products_Quantity 필드와 조건식의 부울 값을 보유하는 추가 속성을 포함하는 새로운 익명 형식을 프로젝션합니다. 그런 다음 중첩된 Select 작업을 사용하여 계산된 products_Quantity 값을 조건부로 할당합니다.
간단한 CASE문 예시
간단한 CASE 문을 LINQ로 변환하기 위해 제공된 코드 예제에서는 Select 절에서 삼항 표현식을 사용하는 방법을 보여줍니다.
<code class="language-csharp">Int32[] numbers = new Int32[] { 1, 2, 1, 3, 1, 5, 3, 1 }; var numberText = ( from n in numbers where n > 0 select new { Number = n, Text = n == 1 ? "One" : n == 2 ? "Two" : n == 3 ? "Three" : "Unknown" } );</code>
이 문은 삼항 표현식을 사용하여 해당 값에 따라 숫자에 다른 텍스트 값을 할당합니다. 삼항 표현식의 구문은 다음과 같습니다.
<code class="language-csharp">condition ? true_expression : false_expression</code>
이 예제에서는 조건을 평가하고 데이터에 값을 할당하는 간결하고 유지 관리가 쉬운 방법을 제공하여 CASE 문을 LINQ로 변환하는 방법을 보여줍니다.
위 내용은 SQL CASE 문을 LINQ 쿼리로 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!