質問

簡単な質問、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を確認できますが、ステートメントと非常によく似ているはずです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top