Question

Question simple, est-il possible de réaliser cette requête avec Entity Framework lors de la mise à jour d'une entité?

update test set value = value + 1 where id = 10
Était-ce utile?

La solution

Pas vraiment sous ce numéro de formulaire.

Vous devrez sélectionner toutes les entités qui correspondent à vos critères, les sur et les mettre à jour.

Si vous recherchez quelque chose qui conviendra parfaitement à la base de données, car votre jeu pourrait être énorme, vous devrez utiliser directement SQL. (Je ne me souviens pas si EF sait exécuter une requête UPDATE directement comme le fait Linq To SQL.)

Autres conseils

Utilisez la fonctionnalité de mise à jour par lots de la bibliothèque étendue Entity Framework , comme suit:

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

Cela devrait être, ce sera juste un peu plus contraint en général.

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

Si vous produisez du code SQL similaire, vous pouvez regarder le profileur pour voir quel code SQL est réellement généré, mais cela devrait être très similaire à votre déclaration.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top