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
Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top