2016-08-23 5 views
1

저는 linq에서 sql을 처음 사용하고 있으며 복잡한 SQL 쿼리가 있습니다.LINQ to SQL 쿼리에 대한 복잡한 SQL Server 쿼리 C#

내 SQL Server 쿼리는 곧이를 수행합니다. 테이블 (product) (a)과 productorder (b)가 2 개 있습니다. 제품에는 금액이 있으며 고객에게 진행중인 품목의 수를 경고하는 두 번째 금액이 있습니다. 에서

"는"우리가 주문하는 경우 우리는 두 번째 양의 값이 5 5. 그런 다음 테이블을 주문하는 경우 우리는 10 개 논문이 더 : 5 = 5 + 더 그래서 여기 내 T-SQL을 쓰기

. 내가 LINQ는

UPDATE a 
SET a.secondamount = a.secondamount + b.orderedamount 
INNER JOIN b ON a.productid == b.productid 
WHERE b.status = false ; 
+0

당신은 이미 SQL 쿼리를 작성합니다. 이것을 LINQ로 번역 하시겠습니까? –

+0

예, 이전 코드에서 사용한 코드 스 니펫입니다. 지금은 SQL에 linq 모든 sqlcommand/reader 등 교체해야합니다. 나는 거의 모든 것을이 것으로 집어 넣었다. – bencemik95

답변

1

Linq에이 업데이트에 사용하지만, 에 대한를 조회하지 않는 SQL 싶다. linq을 사용하여 업데이트하려는 모든 레코드를 찾고 데이터를 준비 할 수 있지만 업데이트 자체는 별도로 발생해야합니다.

var result = from itemA in a 
      join itemB in b on itemA.productId equals itemB.productId 
      where itemB.Status == false 
      select new { itemA, itemB.orderedamount }; 

foreach(var item in result) 
{ 
    //do update using item.itemA.secondAmount + item.orderedamount 
} 
+0

Gilad, 죄송합니다. 귀하의 질의를 편집 가능하게 만들고 또 바보 같은 실수를 범했습니다. –

+0

첫 번째 편집을 통해 귀하의 답변을 파손 했으므로 사과 드리겠습니다. –

+0

@IvanStoev - 아아아, 알았어. 'equals'는 단지 어리석은 실수였습니다. :) 하하. 'join'에 대해서'where'와 비교해 봅니다 -'join'은 원본 SQL이 어떻게 되나 하나 이상의 레코드를 생성한다면 어떻게 될 것입니까? .. 그것이 내가 그것을 변경 한 이유입니다. 'Any'에게 –