Mise à jour de la déclaration avec Entity Framework
-
19-08-2019 - |
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
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.