Pregunta

Pregunta simple, ¿es posible lograr esta consulta con Entity Framework al actualizar una entidad?

update test set value = value + 1 where id = 10
¿Fue útil?

Solución

No realmente bajo este formulario no.

Tendrá que seleccionar todas las entidades que coincidan con sus criterios, predecirlas y actualizarlas.

Si está buscando algo que lo haga bien en la base de datos porque su conjunto podría ser enorme, tendrá que usar SQL directamente. (No recuerdo si EF tiene una forma de ejecutar consultas de ACTUALIZACIÓN directamente como lo hace Linq To SQL).

Otros consejos

Utilice la función de actualización por lotes de la Biblioteca ampliada de Entity Framework , de esta manera:

dbContext.Tests.Update(t => t.Id == 10, t => new Test() { Value = t.Value + 1 });

Debería serlo, en general será un poco más limitado.

var myEntity = context.First(item => item.id == 10);
myEntity.value += 1;
context.SaveChanges();

Debería producir un SQL similar, puede ver el generador de perfiles para ver qué SQL se está generando realmente, pero debe ser muy similar a su declaración.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top