Je peux changer un champ d'une ligne avec entryId
dans Esqueleto comme ceci:Mettre à jour une ligne avec ID spécifique dans Esqueleto
update $ \entry -> do
set entry [ EntryFoo =. val bar ]
where_ (entry ^. EntryId ==. val entryId)
Cependant, écrire tout le temps devient ennuyeux. Je voudrais pouvoir écrire quelque chose comme ceci:
updateById entryId $ \entry ->
set entry [ EntryFoo =. val bar ]
J'ai essayé d'écrire cette aide par moi-même, mais a constaté que je ne sais pas comment écrire ^. EntryId
de manière générique (par exemple d'une manière qui fonctionnerait pour tous les types d'entrée). C'est possible? Ou suis-je manquer quelque chose et updateById
existe déjà dans Esqueleto?
Bien sûr, cela résout le problème pour une table particulière ('Entry'), mais je veux une solution qui fonctionnerait pour n'importe quelle table. C'est à dire. J'ai besoin de 'updateById :: Key a -> _ -> _', alors que votre fonction est' updateById :: Key Entry -> _ -> _'. – Artyom