2016-08-23 19 views
1

私はlinqからSQLへの新しいです。私は複雑なSQLクエリを持っています。複雑なSQL ServerクエリからLINQ to SQLクエリC#

私のSQL Serverクエリはこれをまもなく行います。私は2つのテーブルproduct(a)とproductorder(b)を持っています。製品には金額があり、顧客に現在進行中のアイテムの数を警告する第2の金額があります。で

「」私たちはご注文いただいた場合、我々は第二の量の値は5です。5.次にテーブルを注文した場合、我々は10本の論文を持っているより:5 = 5 +もっとだから私はここに私のT-SQLを記述

。私は、LINQは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にsqlに置き換える必要があります。私はこの1つにこだわったすべてをほぼ置き換えました。 – bencemik95

答えて

1

を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

ジラッド、申し訳ありませんが、あなたの質問をコンパイル可能にしようとし、別のばかげたミスを導入しました。 –

+0

私は私の最初の編集であなたの答えを破ったことを意味したので、私はそれをお詫び申し上げます。 –

+0

@IvanStoev - ああよかったよ。 「平等」はばかげた間違いだった:)。 'where'と比較して' join'について - 私は 'join'が元のSQLのやり方の点で正しいのですが、その結合が複数のレコードを生成する場合どうなりますか?それが私がそれを変更した理由です'Any'へ –