簡単な問題はありますが、これに近づく方法は完全に失われています。linq to SQL複数のレコードを更新する
これはLinq2Sqlモデルの私のビジネスモデルでは単純化されたテーブルです。意味
UPDATE Contract SET campaignId = 1 WHERE batchId = 5
は、同じContractBatch
のための複数のレコードがあることができ、私はそれらのすべてのためのCampaign
を設定する必要があります。今、私はこのような更新クエリを行う必要があります。このクエリを簡単な方法でLinq式に変換することは可能ですか?私が見つけることができる唯一の方法は、そのContractBatch
のすべてのレコードをフェッチして、ループで1つずつ更新します。これはあまり効率的ではありません。
var campaignId = 1;
var batchId = 5;
using(var dataContext = new DataModel.ModelDataContext()) {
dataContext.Contracts
.Where(c => c.BatchId == batchId)
// this is obviously my "wish to have" method
.ForEach(c => c.CampaignId = campaignId)
dataContext.SubmitChanges()
}
私はすでに古い方法でそれをやっについて考えと手でそのクエリを実行しています。私はそれが好きではありませんが、おそらく何百もの更新クエリのように実行している方が良いでしょう。
ありがとうございます。それは私が思った通りです。私はちょうどそこに古い古典的なテキストの質問をポンプし、それを忘れるでしょう。 – FredyC
これを行う最も簡単な方法は、DataContext.ExecuteQueryメソッドを使用することです。すべての設定作業を保存します。 –