Инструкция Update с Entity Framework
простой вопрос, Можно ли достичь этого запроса с помощью Entity Framework при обновлении одной сущности?
update test set value = value + 1 where id = 10
3 ответов
не совсем под этой формой нет.
вам нужно будет выбрать все объекты, которые соответствуют вашим критериям, foreach над ними и обновить их.
Если вы ищете что-то, что будет делать это прямо в БД, потому что ваш набор может быть огромным, вам придется использовать SQL напрямую. (Я не помню, есть ли у EF способ выполнять запросы обновления напрямую, как это делает Linq to SQL).
используйте функцию пакетного обновления Расширенная Библиотека 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 фактически генерируется, но он должен быть очень похож на ваш оператор.