instrução de atualização com Entity Framework
-
19-08-2019 - |
Pergunta
Pergunta simples, é possível alcançar essa consulta isso com Entity Framework ao atualizar uma entidade?
update test set value = value + 1 where id = 10
Solução
Não é realmente sob esta forma não.
Você terá que selecionar todas as entidades que correspondem aos seus critérios, foreach sobre eles e atualizá-los.
Se você estiver procurando por algo que vai fazê-lo bem no DB porque o seu conjunto pode ser enorme, você terá que usar SQL diretamente. (Não me lembro se EF tem uma maneira de executar consultas atualização diretamente a maneira LINQ to SQL faz).
Outras dicas
Use o recurso Batch Atualização do Entity Framework Extensão Biblioteca , como este:
dbContext.Tests.Update(t => t.Id == 10, t => new Test() { Value = t.Value + 1 });
Deve ser, ele vai ser apenas um pouco mais restrito em geral.
var myEntity = context.First(item => item.id == 10);
myEntity.value += 1;
context.SaveChanges();
Se produzir SQL semelhante, você pode assistir o profiler para ver o que SQL está realmente a ser gerado, mas deve ser muito semelhante à sua declaração.