Вопрос

Простой вопрос, возможно ли выполнить этот запрос с помощью Entity Framework при обновлении одного объекта?

update test set value = value + 1 where id = 10
Это было полезно?

Решение

Не совсем под этой формой нет.

Вам нужно будет выбрать все объекты, которые соответствуют вашим критериям, просмотреть их и обновить их.

Если вы ищете что-то, что сделает это прямо в БД, потому что ваш набор может быть огромным, вам придется использовать SQL напрямую. (Я не помню, есть ли у EF способ выполнять запросы UPDATE напрямую, как это делает 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 на самом деле генерируется, но он должен быть очень похож на ваше утверждение.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top