Entity Frameworkを使用してステートメントを更新する
-
19-08-2019 - |
質問
簡単な質問、1つのエンティティを更新するときにEntity Frameworkでこのクエリを達成することは可能ですか?
update test set value = value + 1 where id = 10
解決
実際にはこのフォーム番号の下ではありません。
条件に一致するすべてのエンティティを選択し、それらを上書きして更新する必要があります。
セットが巨大になる可能性があるため、DB内で適切に機能するものを探している場合は、SQLを直接使用する必要があります。 (EFにLinq To SQLのように直接UPDATEクエリを実行する方法があるかどうかは覚えていません。)
他のヒント
Entity Framework拡張ライブラリのバッチ更新機能を次のように使用します。
dbContext.Tests.Update(t => t.Id == 10, t => new Test() { Value = t.Value + 1 });
そうであるべきです、一般的にはもう少し制約があるでしょう。
var myEntity = context.First(item => item.id == 10);
myEntity.value += 1;
context.SaveChanges();
同様のSQLを生成する必要があります。プロファイラーを見ると、実際に生成されているSQLを確認できますが、ステートメントと非常によく似ているはずです。
所属していません StackOverflow